技术应用

基于智能合约和CP-ABE的病理信息可追溯安全共享方案

  • 童心悦 ,
  • 陈付龙 , * ,
  • 王涛春 ,
  • 谢冬 ,
  • 胡鹏
展开
  • 安徽师范大学,芜湖 241000
陈付龙()。

收稿日期: 2025-03-23

  网络出版日期: 2025-08-20

基金资助

国家自然科学基金(61972438);芜湖市重点研发与成果转化项目(2023yf117)

版权

版权所有©《网络空间安全科学学报》编辑部 2025

Traceable and secure sharing scheme for pathological information based on smart contracts and CP-ABE

  • TONG Xinyue ,
  • CHEN Fulong , * ,
  • WANG Taochun ,
  • XIE Dong ,
  • HU Peng
Expand
  • Anhui Normal University, Wuhu 241000, China

Received date: 2025-03-23

  Online published: 2025-08-20

Supported by

National Natural Science Foundation of China (61972438) and Wuhu Science and Technology Plan Project (2023yf117)

Copyright

Copyright ©2025 Journal of Aeronautical Materials. All rights reserved.

摘要

随着远程医疗的广泛应用,病理信息中包含的患者个人隐私面临严峻威胁。传统的安全共享算法往往侧重构建复杂的访问模型或加密算法,却在泄密者身份追踪方面存在明显缺陷,无法有效应对数据泄露问题。为解决这一难题,提出了一种基于白盒追踪和智能合约实现数据可溯共享的方案。该方案的核心在于为每位用户分配唯一的ID,并将ID与用户属性组进行编码生成密钥,确保只有符合特定访问结构的用户才能访问病理信息数据。每当用户进行访问操作时,智能合约会自动记录访问者的密钥,为后续的数据安全审计和泄密追踪提供了重要依据。一旦发生数据泄露事件,管理员可以通过访问者密钥进行反解密获取用户ID,从而定位泄密者的身份。理论分析和实验表明,该方案拥有较高的灵活性和安全性,并通过引入解密外包服务,减少了传统访问控制方案的加解密时间损耗。

本文引用格式

童心悦 , 陈付龙 , 王涛春 , 谢冬 , 胡鹏 . 基于智能合约和CP-ABE的病理信息可追溯安全共享方案[J]. 网络空间安全科学学报, 2025 , 3(3) : 102 -116 . DOI: 10.20172/j.issn.2097-3136.250308

Abstract

With the widespread adoption of telemedicine, the personal privacy of patients contained in pathology information is facing severe threats. Traditional secure sharing algorithms often focus on constructing complex access models or encryption algorithms, but exhibit significant deficiencies in tracking the identity of leakers, rendering them ineffective in addressing data breach issues. To tackle this problem, a traceable data sharing scheme based on white-box tracing and smart contracts was proposed. The core of this scheme was to assign a unique ID to each user and encode the ID together with the user's attribute set to generate a key, ensuring that only users meeting a specific access structure could access the pathology information. Whenever a user performed an access operation, the smart contract automatically would record the visitor’s key, which served as critical evidence for subsequent data security audits and leak tracing. In the event of a data breach, administrators could reverse-decrypt the visitor's key to obtain the user ID, thereby pinpointing the leaker's identity. Theoretical analysis and experimental results indicated that the proposed scheme offered high flexibility and security, and by incorporating decryption outsourcing services, it reduced the time overhead associated with encryption and decryption in traditional access control schemes.

0 引言

病理信息作为病理诊断和报告的核心组成部分,通常以结构化或半结构化的文字形式呈现,如图1所示,包含从标本描述到诊断结论的关键内容,如患者和标本的基本信息、观察记录、组织学形态记录及诊断结论等,是形态学观察与临床决策的桥梁,能够直接影响诊疗质量。当今,数字病理信息已被广泛应用于各种场景:医生通过电子病理获取患者过往的病史、检查结果和治疗记录进行辅助,以做出更准确的诊断和治疗决策[1];医联体组织基于数字病理信息实现远程医疗服务[2],使医疗资源落后的乡镇地区能够获得更加专业的医疗建议;科研人员利用数字病理提供的临床数据资源,开展医学教育和临床研究[3]
图 1 病理信息示例

Fig.1 Example of pathological information

虽然数字病理信息的出现展现出巨大的潜力,但背后存在的隐患也不容小觑。其中包含患者的大量敏感信息,如身份信息、病史、诊断结果等,一旦泄露,可能会给患者带来严重后果[4],其安全性和隐私保护是首先需要关注的问题。因此,如何安全有效地进行病理信息的存储和共享,成为当前研究的热点问题。
访问控制技术通过严格的身份验证和授权机制来确保电子病历等文本数据的安全访问,要求医疗机构采用密文密钥、生物识别或电子令牌等多种手段进行身份验证和权限管理,只有经过授权的医护人员才能访问特定的患者信息,能够有效防止数据泄露,保障数据安全。
基于属性的访问控制(Attribute-Based Access Control,ABAC)是一种细粒度的访问控制模型,在医疗数据隐私保护中提供了一种灵活且安全的方案[5-7]。患者信息被加密成密文,并附上相应的属性标签。医疗服务提供者根据其角色和属性生成私钥,只有具备相应权限的用户才能解密和读取数据。这样,医疗数据的访问控制得以精细化,保护患者隐私,同时也确保医疗工作者能够在必要时访问相关信息,通过联邦学习进行分布式数据训练[8-13]
现有的数据安全共享系统致力于开发复杂的加密算法[14-20],以期从根本上杜绝数据泄露的风险,但缺少数据泄露后的追踪溯源及惩罚机制。随着攻击手段的不断演进,即便是最精密的加密系统也可能遭遇破解,数据泄露的威胁始终存在。针对这类问题,本文提出了一种基于区块链、可追溯安全共享医疗数据的方法,使用属性基加密完成访问控制,并对访问记录留痕记录。本文主要贡献为:
(1)提出一种基于白盒追踪和智能合约实现数据可溯共享的方案,在ABAC中通过基于密文策略的属性加密(Ciphertext Policy Attribute-Based Encryption,CP-ABE)技术实现细粒度的访问控制,只有满足特定属性集要求的用户才可以访问数据集,保证了数据的安全性。
(2)提出有效的解密外包算法,将用户ID编码至密钥中,保证每个用户所使用的访问密钥具有唯一性,由可信中心完成加解密过程,极大地降低了客户端的计算开销。
(3)设计智能合约,在用户访问数据时记录密钥,可信中心管理员有权限查看访问日志,采用白盒可追踪机制来实现可追踪性,根据记录的密钥追溯泄密者身份。
(4)提供了可靠的安全证明(proverif/GNY Logic)和性能评估,两者都表明本文方案是安全高效的,具有可行性。
本文其余部分的组织结构如下:第1节回顾了CP-ABE技术的前人相关工作;第2节介绍了必要的背景概念;第3节介绍了所提方案的系统架构、主要算法描述和安全模型;第4节给出了所提方案的构造及其正确性证明;第5节证明了所提出方案的安全性;第6节对所提方案进行了性能评估;第7节给出了结论和展望。

1 相关工作

区块链作为一种公开、不可篡改的分布式账本,与其结合使得跨域访问控制过程更加透明、安全。Li等[21]针对医疗物联网数据共享隐私问题,提出了基于区块链与轻量级秘密共享方案,创新地构建并设计了阈值秘密共享模型,采用分布式存储形式解决了集中式管理问题,提供了基本的秘密重构和检索框架。然而,临床数据的验证、存储和同步比较困难,病人、医生和科研人员在数据访问和共享过程中都面临许多限制。薛腾飞等[22]针对这些问题提出了一种基于区块链的医疗数据安全共享模型,该模型主要具有安全性高、集体维护和防篡改的特点。
为了克服传统解决方案的局限性,Li等[23]提出了医疗安全网络框架,融合边缘计算与区块链用于医疗数据共享,通过边缘计算处理原始数据提取摘要,区块链实现了数据可追溯与访问控制。为了解决用户解密计算开销过大等问题,Liu等[24]提出了一个支持大属性域和多属性机构的属性加密(Attribute-Based Encryption,ABE)方案,Xu等[25]提出了基于区块链的医疗数据共享方案,利用授权机制和属性加密实现了多机构数据共享与隐私保护,支持多对多匹配和轻量级解密。Xu等[26]提出了一种具有防篡改和灵活访问控制的电子病历共享系统,采用双策略可撤销属性加密和区块链技术,创新地实现了细粒度访问控制、动态用户管理等功能。Sethi等[27]构造了一个基于大属性域的多授权CP-ABE方案,该方案支持策略更新和外包解密。
Yang等[28]提出了基于秘密共享和区块链的多医院快速医疗互操作性资源数据库授权安全模型,利用新的秘密共享技术,结合ElGamal加密及区块链实现了数据库授权。Tan等[29]基于属性和区块链技术,设计了一种跨域访问控制机制,将访问控制策略、属性等信息上传到区块链,在域间实现了分布式管理,通过智能合约对访问控制进行判断,能够自动处理多条访问控制请求,提高了跨域访问效率。Selvarajan等[30]提出了用于医疗保健系统的区块链网络安全模型,结合临床术语知识图谱管理、量子拓扑感知存储器等技术保障了数据安全共享,与其他模型对比,在多方面性能更优。
CP-ABE机制的解密权限与一组属性相关联,并且该属性集可能被多个用户共享,该机制很难发现谁将解密权限泄露给其他未授权的实体。为了解决这个问题,研究人员针对不同的应用场景提出了相应的可追溯CP-ABE方案[31-33]。其中,从泄露的特权中找到叛徒身份的机制被称为白盒可追溯性[34]

2 背景概念

本节将预先定义本文使用的符号和假设,并对基本概念做出介绍。

2.1 素数阶双线性群

在密码学中,双线性群的构造通常基于椭圆曲线,它们提供了一种在不同群之间建立关联的方式,同时保持了操作的效率和安全性。选择两个素数阶的双线性群$ {G}_{1} $$ {G}_{2} $,以及一个生成元$ g $和其对应的双线性映射$ e:{G}_{1}\times {G}_{1}\to {G}_{2} $,需要满足以下条件。
(1)对于任意标量$ x,y\in \mathbb{Z} $都有乘法性质:
$ e({g}^{x},{g}^{y})=e(g,g{)}^{xy} $
其中,标量$ x,y $是简单的数值,不涉及方向或其他维度的信息,这里$ g $是群$ {G}_{1} $的生成元,满足$ {G}_{1}=\{{g}^{n}\mid n\in \mathbb{Z}\} $,即通过$ g $自身的幂次生成$ {G}_{1} $群中所有其他元素。
(2)对于任意$ a,b\in {G}_{1} $都有两个参数的线性性:
$ e({a}_{1}+{a}_{2},b)=e({a}_{1},b)\cdot e({a}_{2},b) $
$ e(a,{b}_{1}+{b}_{2})=e(a,{b}_{1})\cdot e(a,{b}_{2}) $
映射是线性的,意味着它对每个参数都是线性的。$ a $$ b $是群$ {G}_{1} $的元素,但通过线性组合和群的操作,可以得到映射到群$ {G}_{2} $的结果。
(3)非退化性:
$ e(g,g)\ne 1 $
对于群$ {G}_{1} $的生成元$ g $,映射$ e(g,g) $不应等于群$ {G}_{2} $的单位元(通常表示为1或$ e $),这确保了在使用双线性映射进行密码学协议时,能够区分不同的输入,保证映射具有足够的复杂性。

2.2 属性假设

假设有一组属性$ A=\{{a}_{1},{a}_{2},\cdots ,{a}_{n}\} $,用户的私钥和共享密钥将基于这些属性生成。因此,该属性组应是可以明确区分的,并且能够有效描述参与者的资格,属性可以是角色(如主任医师、科研人员)、部门等,确保这些属性能够满足特定的访问控制要求。考虑属性之间的关系和依赖性,如某些属性可能是互斥的或有某种层次关系,确保属性设计时能够反映这些关系,以便在解密时能够正确评估权限。考虑属性可能随时间变化的情况,设计机制来更新和撤销密钥,确保系统的灵活性和安全性。
访问结构$ \boldsymbol{S} $是从属性集$ \boldsymbol{A} $中选取的非空子集的集合,即$ A\subseteq {2}^{S}\setminus \left\{\varnothing \right\} $。这里的$ {2}^{S} $表示$ \boldsymbol{S} $的幂集,也就是$ \boldsymbol{S} $的所有可能子集的集合,包括空集,但由于我们要求非空,所以排除了空集。
单调访问结构:访问结构$ \boldsymbol{S} $被定义为单调的(Monotone),对于任意两个子集$ \boldsymbol{B} $$ \boldsymbol{C} $,如果$ \boldsymbol{B} $$ \boldsymbol{S} $中的一个元素,并且$ \boldsymbol{B} $$ \boldsymbol{C} $的真子集(即$ \boldsymbol{B}\subset \boldsymbol{C} $),那么$ \boldsymbol{C} $也必须是$ {\boldsymbol{A}} $中的一个元素。该性质意味着,如果一个属性子集被授权,那么任何包含这个子集的更大属性子集也必须被授权。
在访问结构$ \boldsymbol{S} $中的集合被称为授权集(Authorised Set),而不在$ \boldsymbol{S} $中的集合被称为未授权集(Unauthorised Sets)。

2.3 线性秘密共享方案

定义$ \boldsymbol{A}=\{{a}_{1},{a}_{2},\cdots ,{a}_{n}\} $为一个属性集,其中每个$ {a}_{i} $代表一个不同的属性。设$ \boldsymbol{P}=\{{P}_{1},{P}_{2},\cdots ,{P}_{n}\} $为参与者集,每个参与者$ {P}_{i} $与一个或多个属性相关联。在我们的新定义中,访问结构$ \boldsymbol{S} $只包含单个属性的子集,即$ \boldsymbol{S}=\left\{\right\{{a}_{1}\},\{{a}_{2}\},\cdots ,\{{a}_{n}\left\}\right\} $。定义$ \boldsymbol{M} $为一个$ n\times n $ 矩阵,其中每一行$ {S}_{i} $对应一个参与者$ {P}_{i} $,每一列对应一个属性$ {a}_{i} $。矩阵$ \boldsymbol{S} $的设计应确保每一行只包含一个非零元素,该元素位于与参与者关联的属性对应的列。
分配秘密份额:秘密$ s $ 被分配为$ n $个份额,每个参与者$ {P}_{i} $获得一个份额$ {s}_{i} $。份额$ {s}_{i} $是通过将秘密$ s $ 与矩阵$ \boldsymbol{M} $的第$ i $ 行相乘得到的。只有当参与者$ {P}_{i} $的属性$ {a}_{i} $被访问结构$ \boldsymbol{S} $授权时,他们才能恢复秘密。由于矩阵$ \boldsymbol{M} $的特殊设计,每个参与者只能使用自己的份额$ {s}_{i} $恢复秘密,而无法与他人合作恢复秘密。矩阵的行是线性独立的,任何非授权的属性集都无法形成能够恢复秘密的线性组合,这在很大程度上确保了数据的安全性。

2.4 SXDH假设

并非所有的对称双线性群都是安全的,如果一个对称双线性群的双线性映射可以被有效地计算,群的阶数或双线性映射的其他性质可以被攻击者利用,那么这个群就可能被认为是不安全的。
在密码学中,DH(Diffie-Hellman)问题是构建许多加密方案的基础,特别是那些涉及密钥交换的方案。对称外部Diffie-Hellman(Symmetric External Diffie-Hellman,SXDH)假设是一种特定的DH问题变体,其实质是密码学中一种基于非对称双线性群的困难性假设,它在双线性映射(Bilinear Pairings)的背景下使用,并且是构建某些类型ABE方案的关键假设。
素数阶双线性群$ {G}_{1} $$ {G}_{2} $中的判定性Diffie-Hellman(Decisional Diffie-Hellman,DDH)问题是指,给定$ {g}_{1} $,$ {g}_{2} $,$ {g}_{a}^{1} $,$ {g}_{b}^{2} $(其中$ a $,$ b $是从$ {\mathbb{Z}}_{p}^{*} $中随机选择的),一个多项式时间算法需要区分以下两种情况:
(1)$ T=e({g}_{1},{g}_{2}{)}^{ab} $(即$ {g}_{a}^{1} $$ {g}_{b}^{2} $的双线性映射结果)。
(2)$ T=e({g}_{1},{g}_{2}{)}^{c} $,对于某个随机选择的$ c\in {\mathbb{Z}}_{p}^{*} $
如果一个多项式时间算法$ B $ 能够以非忽略的概率正确区分这两种情况,那么它具有优势$ \epsilon $。形式上,即满足公式(5)。
$ \mid \mathrm{P}\mathrm{r}\left[{B}\right({g}_{1},{g}_{a}^{1},{g}_{b}^{2},e({g}_{1},{g}_{2}{)}^{ab})=1] $
$\;\;\;\;\; \text{–}{{\mathrm{Pr}}[B(}{g}_{1},{g}_{a}^{1},{g}_{b}^{2},e({g}_{1},{g}_{2}{)}^{c})=1]\geqslant \mathrm{\epsilon} $
其中,$ \mathrm{P}\mathrm{r}\left[{B}\right({g}_{1},{g}_{a}^{1},{g}_{b}^{2},e({g}_{1},{g}_{2}{)}^{ab})=1] $表示算法$ B $在真实情况下输出1(即正确识别$ e({g}_{1},{g}_{2}{)}^{ab} $的概率),$ \mathrm{P}\mathrm{r}\left[B\right({g}_{1}, {g}_{a}^{1},{g}_{b}^{2},e({g}_{1},{g}_{2}{)}^{c})=1] $表示算法$ {B} $在随机情况下输出1(即错误地将$ e({g}_{1},{g}_{2}{)}^{c} $识别为$ e({g}_{1},{g}_{2}{)}^{ab} $的概率)。如果$ \epsilon $是非忽略的(即$ \epsilon $>0且不随安全参数的增加而显著减小),意味着算法$ B $ 能够以比随机猜测更高的成功率区分这两种情况。因此,如果一个算法在解决DDH问题上具有非忽略的优势,那么通常意味着基于DDH问题的密码学方案可能存在安全隐患。
基于SXDH假设表明,即使在给定$ {g}_{1} $,$ {g}_{2},{g}_{a}^{1},{g}_{b}^{2} $的情况下,计算$ e({g}_{1},{g}_{2}{)}^{ab} $也是困难的。换句话说,没有任何多项式时间算法能够解决DDH问题。

2.5 安全性证明方法

加密协议的安全性证明旨在验证协议在理论上是否能够抵御各种潜在的攻击,通常分为正式方法和非正式方法两大类。其中正式方法主要包括:基于逻辑的证明,使用形式化逻辑系统来描述协议的安全性属性,并通过逻辑推理来证明协议满足这些属性;基于模型的证明,在特定的安全模型(如Dolev-Yao模型)下,使用形式化方法(如ProVerif工具)来自动分析和验证协议的安全性。
ProVerif是一个用于自动验证密码协议安全性的工具,由法国国家信息与自动化研究所开发,在密码学和信息安全领域应用广泛。其本质是基于重写逻辑和Horn子句的推理系统,它将密码协议建模为进程代数的形式,使用Horn子句来表示协议的规则和攻击者的能力。通过对这些规则进行符号化的推导和分析,ProVerif可以判断协议是否满足特定的安全属性,如认证性、保密性等。

3 系统定义

本节基于Zhang和Li等关于CP-ABE方案的想法,提出了一种极具创新性的基于白盒追踪和智能合约实现数据可溯共享的方案,该方案结合使用了密钥封装机制和数据封装机制,在提供隐蔽访问策略和外包解密服务的同时,实现了对恶意泄密用户的追溯,有助于数据泄露后的责任认定。

3.1 系统架构

系统由5个实体构成:数据所有者(Data Owner,DO)、数据使用者(Data User,DU)、医联体中心(Medical Consortium Center,MCC)、云服务供应商(Cloud Service Provider,CSP)和区块链(Block Chain,BC)。图2展示了一次完整的数据共享流程,其中MCC都是完全可信任的。DO角色由各医院病例数据库承担,DO对数据进行加密并上传至云服务器,生成相应数据的访问策略,确保细粒度共享;DU为医生、护士、科研人员等,根据不同的身份信息,分配相应的属性集,DU需要向MCC进行账号注册,并根据注册的用户ID分配不同的解密密钥;CSP提供数据存储服务和外包解密服务,及时响应DU的数据共享申请;BC是部署了智能合约的区块链,与CSP进行交互,实时记录各项数据的访问情况和访问者的密钥。
图 2 病理数据共享流程图

Fig.2 Flow chart of pathological data sharing

在本方案中,DO所设置的访问策略是绝对保密的,执行外包解密的第三方MCC不了解访问策略。对每个DU会分配不同的用户ID,并用ID结合随机盐生成唯一密钥,BC记录每一次数据共享过程,可以追溯到访问申请发起者。

3.2 算法设计

本方案主要由以下算法构成。
(1)Setup($ {1}^{\lambda },\varSigma $)
算法目的:初始化系统参数,包括主公钥、主私钥和属性组密钥集合。
步骤:
1)选择一个足够大的素数阶循环群$ {G}_{1} $和它的生成元$ g $
2)选择一个随机的映射$ \beta $$ {G}_{1} $到另一个群$ {G}_{2} $(目标群),使得$ e(g,g{)}^{\alpha } $是一个在$ {G}_{2} $中的元素,其中$ e $是双线性映射。
3)对于属性空间$ \varSigma $中的每个属性$ \boldsymbol{A} $,选择一个随机的元素$ {U}_{A} $作为属性的秘密,并计算$ {U}_{A}={U}_{A}^{\beta } $
4)选择一个随机的$ \alpha $作为主秘密密钥$ M S K $,并计算主公钥$ M P K=\{{G}_{1},g,{g}^{\beta },e(g,g{)}^{\alpha },\left\{{U}_{A}{\}}_{A\in \varSigma }\right\} $
5)为每个属性$ \boldsymbol{A} $生成属性组密钥$ {K}_{A} $$ {K}_{A} $包含与属性$ \boldsymbol{A} $相关的一些加密信息。
6)返回$ M P K $$ M S K $和属性组密钥集合$ \boldsymbol{K} $
(2)KeyGen($ M S K $, 用户属性集)
算法目的:为用户生成一个基于其属性集的私钥。
步骤:
1)用户提交其属性集$ {A}_{U} $给密钥生成中心。
2)密钥生成中心使用主秘密密钥$ M S K $和用户的属性集$ {A}_{U} $来计算用户的私钥$ S K $
3)用户的私钥$ S K $包含与用户属性相关的加密信息,同时包括随机选择的秘密和相应的公钥组件。
4)返回用户的私钥$ S K $
(3)Encrypt($ M P K $,明文$ M $,访问策略$ S $)
算法目的:使用访问策略加密明文,只有符合策略的属性集的用户才能解密。
步骤:
1)选择一个随机的加密指数$ s $
2)计算加密过程中需要的一系列随机化因素。
3)根据访问策略$ S $构造访问树$ T $
4)使用主公钥$ M P K $和访问树$ T $加密明文$ M $,生成密文$ CT $
5)返回密文$ CT $
(4)Decrypt($ M P K $,$ S K $,$ CT $)
算法目的:使用用户的私钥尝试解密密文。
步骤:
1)用户使用其私钥$ S K $和主公钥$ M P K $尝试解密密文$ CT $
2)如果用户的属性集满足密文$ CT $中嵌入的访问策略,则解密成功,返回明文$ M $
3)如果不满足访问策略,返回解密失败标志$ \perp $
(5)Trace($ M S K $,$ S {K}^{*} $)
算法目的:追踪疑似泄露的私钥$ S {K}^{*} $到一个特定的用户身份。
步骤:
1)使用主私钥$ M S K $来验证疑似泄露的私钥$ S {K}^{*} $
2)如果$ S {K}^{*} $是有效的,使用白盒追踪技术来识别与$ S {K}^{*} $相关联的用户身份。
3)返回追踪到的用户身份ID

4 方案架构

本节提出了一种基于白盒追踪和智能合约实现数据可溯共享的方案,并给出了具体的方案运行流程。

4.1 构建加密算法

加密算法如算法1所示。
算法1 初始化阶段(Setup)
输入:安全参数$ {1}^{\lambda } $,属性空间$ \mathrm{\varSigma } $
输出:公钥$ M P K $,私钥$ M S K $
1)$ G=(p,{G}_{1},{G}_{2},{G}_{T},e) $//$ p $是素数,$ {G}_{1},{G}_{2} $是两个循环群,$ {G}_{T} $是目标群,$ e $是双线性映射函数
2)$ \left(\mathbb{D},{\mathbb{D}}^{\mathbb{*}}\right)\stackrel{{R}}{\leftarrow }\mathrm{D}\mathrm{u}\mathrm{a}\mathrm{l}\left({\mathbb{Z}}_{p}^{4}\right) $//采样对偶正交基
3)$ \mathbb{D}\left[\mathbb{ }\right]\to \{{d}_{1},\cdots,{d}_{4}\};{\mathbb{D}}^{\mathbb{*}}\left[\mathbb{ }\right]\to \{{d}_{1}^{*},\cdots,{d}_{4}^{*}\} $ // 定义基元素
4)$ {g}_{1},{{f}}_{1},\cdots ,{{f}}_{\mathrm{U}}\stackrel{{{{R}}}}{\leftarrow} \mathbb{G}_{1},{g}_{2}\stackrel{{{{R}}}}{\leftarrow }\mathbb{G}_{2} $ //随机选择群元素
5)$ a,\alpha \stackrel{{{\boldsymbol{R}}}}{\leftarrow }{\mathbb{Z}}_{p}^{*} $ //选择随机数
6)for ($ i=0;\;{i} < =U.length;i++ $)
7)    $ {K}_{{\lambda }_{1}}\cdots{K}_{{\lambda }_{i}}\stackrel{{R}}{\leftarrow }\mathbb{Z}_{p}^{*} $ //选择群组密钥
8)$ {H}_{T}:{G}_{T}\to {\mathbb{Z}}_{p}^{*} $ //选择映射函数
输出主公钥$ M P K $,形式如式(6)所示。
$ \begin{aligned} M P K=&\langle G,{g}_{1}^{{d}_{1}},{g}_{2}^{{d}_{1}^{*}},{g}_{2}^{{d}_{2}^{*}},{f}_{1}^{{d}_{1}},\cdots ,{f}_{U}^{{d}_{1}},{g}_{1}^{{ad}_{1}},\\y=&e({g}_{1},{g}_{2}{)}^{{\alpha d}_{1}\cdot {d}_{1}^{*}},{y}_{1}=e({g}_{1},{g}_{2}{)}^{{d}_{2}\cdot {d}_{2}^{*}}, \\& X=g{}_{2}^{x{d}_{1}^{*}},Y=g{}_{2}^{y{d}_{1}^{*}}\rangle \end{aligned} $
输出主私钥$ M S K $及组密钥$ K $,形式如式(7)所示。
$ M S K=\langle {g}_{1}^{\alpha {d}_{1}}\rangle ,\;K=\left\{{K}_{{\lambda }_{i}}\right\} $
运行KeyGen($ M P K $,$ M S K $,$ S $,ID)算法。首先,与用户ID进行交互,用户从$ {\mathbb{Z}}_{p}^{*} $中随机选择一个数$ k $,计算承诺值$ R={g}_{1}^{ak{d}_{1}} $,将$ R $和一个不泄露$ k $值的知识证明发送给算法。算法从$ {\mathbb{Z}}_{p}^{*} $中随机选择一个数$ t $,输出对应于用户ID和属性集$ {\boldsymbol{A}} $的密钥$ S {K}_{A} $。这一过程确保了只有拥有正确属性的用户才能生成相应的密钥,并且由于用户的秘密值$ k $没有被透露,意味着具体的属性值得以保密。$ S {K}_{A} $具体形式如式(8)所示。
$ \begin{aligned} S {K}_{A}=&\langle {K}_{1},{K}_{2},{K}_{3},{K}_{4},\{{K}_{x}{\}}_{x\in A},{T}_{1},{T}_{2},{T}_{3}\rangle \\=&\Bigg\langle {g}_{1}^{\tfrac{\alpha {d}_{1}}{(x+ID+yd)}},{g}_{1}^{atk{d}_{1}},{g}_{2}^{t{d}_{1}^{*}},{g}_{2}^{xt{d}_{1}^{*}},{g}_{2}^{yt{d}_{1}^{*}}, \\& {\left\{{f}_{x}^{t(x+ID+yd){d}_{1}}\right\}}_{{x}_{\epsilon}A},ID\Bigg\rangle\end{aligned} $
接下来,利用Encrypt()算法将明文消息$ M $、访问结构$ \boldsymbol{S} $以及公钥$ M P K $加密,生成密文$ \overline{CT} $。主要步骤为:从$ {\mathbb{Z}}_{p}^{*} $中随机选择一个秘密值$ s $,计算份额向量$ \overrightarrow{\boldsymbol{\nu }}=({\boldsymbol{v}}_{1},\cdots,{\boldsymbol{v}}_{\boldsymbol{n}}) $,其中每个$ {{v}}_{{i}} $都是从$ {\mathbb{Z}}_{p}^{*} $中随机选择的。对于访问结构中的每个属性$ {\boldsymbol{A}}_{{i}} $,算法计算$ {\lambda }_{i}=\overrightarrow{\boldsymbol{\nu }}\cdot {\boldsymbol{A}}_{{i}} $,为每个属性生成随机数$ {r}_{1},\cdots,{r}_{l} $,每个$ {r}_{i} $都是从$ {\mathbb{Z}}_{p}^{*} $中随机选择的。最终输出密文$ \overline{CT} $,形式如式(9)所示。
$\begin{aligned} \overline{CT}=&\langle C=M\cdot {y}^{s},\overline{{C}^{\prime}}={g}_{2}^{s{d}_{1}^{*}},{C}_{2}={g}_{2}^{xs{d}_{1}^{*}},\ \\ {C}_{3}=&{g}_{2}^{ys{d}_{1}^{*}},\{{\overline{C}}_{i}={g}_{1}^{a{\lambda }_{i}{d}_{1}}\cdot {f}_{\rho \left(i\right)}^{-{r}_{i}{d}_{1}},{\overline{D}}_{i}={g}_{2}^{{r}_{i}{d}_{1}^{*}}\}\rangle\end{aligned} $

4.2 构建解密算法

OutDec()以$ M P K、S {K}_{A}、\overline{CT} $三个参数作为输入,计算$ {T}_{0} $$ {T}_{1} $,如式(10)和式(11)所示。
$ \begin{aligned} {T}_{0}& ={e}_{n}\left({K}_{1}^{\prime},{C}^{\prime}\right)\\ & ={e}_{n}\left({K}_{1}\cdot {g}_{1}^{{zd}_{2}},{\left({g}_{2}^{{sd}_{1}^{*}}{g}_{2}^{{\delta d}_{2}^{*}}\right)}^{ID}{g}_{2}^{{xsd}_{1}^{*}}{g}_{2}^{{ysdd}_{1}^{*}}\right)\\ & =e{\left({g}_{1},{g}_{2}\right)}^{\alpha {sd}_{1}\cdot {d}_{1}^{*}}\cdot e{\left({g}_{1},{g}_{2}\right)}^{atsk\left(x+ID+yd\right){d}_{1}\cdot {d}_{1}^{*}}\\&\quad e{\left({g}_{1},{g}_{2}\right)}^{atsk\left(x+ID+yd\right){d}_{1}\cdot {d}_{1}^{*}}\cdot e{\left({g}_{1},{g}_{2}\right)}^{z\delta ID{d}_{2}\cdot {d}_{2}^{*}}\end{aligned} $
$ \begin{aligned} {T}_{1}=&\prod _{i\in I}\cdot \left({e}_{n}\right({C}_{i},{K}_{2}^{\prime})\cdot {e}_{n}({K}_{\rho }\left(i\right),{D}_{i}){)}^{{\omega }_{i}} \\=& e({g}_{1},{g}_{2}{)}^{ats(x+ID+yd){d}_{1}\cdot {d}_{1}^{*}}\cdot\\& e({g}_{1},{g}_{2}{)}^{({\varSigma}_{i\in I}{\eta }_{{t}_{i}}+\varSigma _{i\in I}{\kappa }_{{t}_{i}})dID{d}_{2}\cdot {d}_{2}^{*}}\end{aligned} $
最终输出$ C{T}^{\prime\prime}= < {C}^{\prime},\widetilde{{C}^{\prime}},{T}_{0},{T}_{1} > $
为了保证解密的正确性,首先需要判断$ C $$ {C}^{\prime} $$ \stackrel{~}{C} $$\widetilde{{C}^{\prime}} $是否相等,如是则计算明文$ M $
$ M=\frac{C\cdot {y}_{1}^{R{K}_{S}}}{{T}_{0}/{T}_{1}^{{T}_{2}}} $
最后对明文进行正确性校验,如返回结果为1,则表明通过检验。

4.3 白盒追踪

下面给出利用算法进行密钥的检查和身份验证的过程。
Trace($ S {K}_{A} $) → $ \perp $ or ($ ID,K $),表示对密钥$ S {K}_{A} $进行追踪,尝试找到与之关联的身份标识$ ID $和密值$ k $。如果追踪失败,则返回$ \perp $(表示失败或不存在);如果成功,返回一个包含$ ID $$ k $的元组。
KeySanityCheck($ S {K}_{A} $) → 0,是对密钥$ S {K}_{A} $进行合理性检查的函数。如果检查通过,返回0(表示密钥是合理的);如果检查失败,返回⊥,表示密钥$ S {K}_{A} $无效或存在问题。
如果$ S {K}_{A} $是合理的(即KeySanityCheck(SKA)返回0),那么$ S {K}_{A} $是一个格式良好的密钥,算法将返回($ ID $,$ k $)。
如果$ ID $不存在,那么可能是认证机构不诚实,认证机构在密钥分发过程中存在欺诈行为。如果$ ID $存在,并且$ {g}_{1}^{\alpha {d}_{1}k} $(其中$ {g}_{1}^{\alpha {d}_{1}k} $是某个秘密值,$ k $是密值)等于用户承诺的值,那么用户可能在密钥使用过程中违反了保密协议。如果$ ID $存在,但$ {g}_{1}^{\alpha {d}_{1}k} $不等于用户承诺的值,那么可能是属性认证机构在密钥或属性管理过程中存在欺诈行为。
对于泄密的用户,将进行责任认定并撤销其访问权限。

5 安全分析

5.1 博弈模型

现在探讨关于本方案的安全性要求,即攻击者无法获取任何关于明文的信息,这主要涉及策略隐藏、白盒追踪、权限撤销三个部分。具体而言,策略隐藏意味着即使执行外包解密工作的第三方也不了解访问策略的具体设置;白盒追踪要求可以通过数据访问者的密钥定位到具体的用户;权限撤销则是在发现恶意攻击者后的惩罚措施。下面通过一个场景的描述来证明本方案是安全可靠的。
场景:由MCC担任安全性证明中的一个理想化实体,主要职责是执行加密方案的初始化步骤,生成并分发公钥MPK,同时保留私钥MSK的秘密。攻击者A是安全性证明中的挑战者,试图通过各种方式来破坏加密方案的安全性。
目标:确保即使攻击者拥有密文和公钥,也无法了解任何关于明文的信息,并且无法从外包解密过程中了解访问策略。
流程:
(1)安全性场景的设置阶段(Setup)。MCC运行Setup()算法,生成主公钥MPK和主密钥MSK
证明方法:通过归约证明可知,如果MCC的某成员能够从MPK中提取出有用的信息,那么可以利用这个成员来解决离散对数问题(Discrete Logarithm Problem,DLP),这通常是不可能的。
(2)第一阶段(Phase 1)。攻击者A对属性集$ \{{A}_{1},\cdots,{A}_{q}\} $进行密钥查询。
证明方法:由于密钥生成算法KeyGen()是基于数学上的困难问题,如果能够从这些密钥中提取出关于访问策略的信息,那么可以利用同样的原理来区分计算Diffie-Hellman(Computational Diffie-Hellman,CDH )问题的实例,在目前的研究中同样是不可能的。
(3)挑战阶段(Challenge)。攻击者A生成两个消息$ {M}_{0} $$ {M}_{1} $以及两个访问结构$ {\boldsymbol{A}}_{0} $$ {\boldsymbol{A}}_{1} $,MCC随机选择其中一个加密并发送给攻击者A。
证明方法:本阶段的安全性依赖加密算法的不可区分性,主要基于双线性Diffie-Hellman问题(Bilinear Diffie-Hellman Problem,BDHP)的困难性。
(4)第二阶段(Phase 2)。攻击者A继续进行密钥查询,但不能针对之前提出的访问结构。
证明方法:这个阶段的安全性同样依赖KeyGen()算法的安全性,以及加密算法的不可区分性。
(5)猜测阶段(Guess):攻击者A输出一个猜测$ {\beta }_{0} $
证明方法:加密算法的随机性,确保敌手的猜测概率接近随机猜测。
上述步骤,利用多种数学理论和密码学难题,如DLP、CDH、BDHP和DDH,以及归约证明方法,证明了本方案在该场景中能够有效实现安全目标。

5.2 ProVerif工具

ProVerif是一个基于Dolev-Yao模型、能自动分析密码协议安全性的工具,用于处理包括对称和非对称加密、数字签名、哈希函数、比特承诺和非交互式零知识证明等多种密码学原语。
本方案使用的ProVerif验证工具由官网下载,版本号为version 2.05,for Windows以及version 2.05,documention。
执行命令后,ProVerif会按照内部过程进行输出,用query关键字表示一次处理逻辑中的查询过程,其中查询攻击者的输出可以分为三个部分:首先proverif推导出能够导致攻击的流程,其次描述了上述攻击的轨迹,最终给出结论。
表1所示,通过ProVerif构建一个反例trace,提供了一种自动化的方法来分析和验证密码协议的安全性,其结果如表2所示,可以发现攻击者无法根据密文直接获得明文,也无法进行密钥的仿制和窃取,表明该方案具有足够的安全性,符合预期的访问控制策略,并且不会发生不符合策略的解密行为,这意味着密钥生成、加密和解密过程均满足定义的安全要求。接下来,通过两个博弈游戏来验证白盒可追溯性。
表 1 ProVerif 代码

Table 1 Codes of ProVerif

type message.
type attribute.
type ID. //定义消息类型
var Alice, Bob, Eve : agent. //定义代理
fun keygen(ID: ID, attributes: list(attribute)) : list(attribute). //密钥生成函数
fun enc(policy: list(attribute), m: message) : message. //加密函数
fun dec(keys: list(attribute), c: message) : message. //解密函数
var doctor, researcher : attribute. //属性定义
var ID_Alice, ID_Bob, ID_Eve : ID. //ID定义
let Alice_keys = keygen(ID_Alice, [doctor, researcher]). //根据属性和ID生成密钥
let Bob_keys = keygen(ID_Bob, [doctor]). // Bob 具有 doctor 属性
let Eve_keys = keygen(ID_Eve, [researcher]). // Eve 具有 researcher 属性
var m : message.
let policy = [doctor, researcher]. //定义策略
let c = enc(policy, m). //明文加密
let decrypted_by_Bob = dec(Bob_keys, c). // Bob 尝试解密
let decrypted_by_Eve = dec(Eve_keys, c). //Eve 尝试解密
output(out1, m).
input(in1, c).
query attacker: knows(m). //查询攻击者是否可以知道明文消息
query attacker: knows(c). //查询攻击者是否可以知道密文
query attacker: knows(decrypted_by_Bob). //查询Bob 是否能够正确解密消息
query attacker: knows(decrypted_by_Eve). //查询Eve 是否能够正确解密消息
表 2 ProVerif测试结果

Table 2 Test results of ProVerif

Verifcation summary:
Query attacker: knows(m) is false.
Query attacker: knows(c) is false.
Query attacker: knows(decrypted_by_Bob) is false.
Query attacker: knows(decrypted_by_Eve) is false.
ProVerif: no attack found.

5.3 追踪机制证明

假设存在攻击者A能够伪造出一个合法且“绑定错误”的密钥$ {S} {{K}}^{\mathrm{\prime}} $,即密钥通过KeySanityCheck的检查,而追踪算法Trace得到的用户标识或承诺值与在执行密钥生成算法KeyGen时用户提交的承诺不一致。证明分两种情况讨论。
在真实系统中,用户在密钥生成时先随机选取一个秘密随机数$ k\in {\mathbb{Z}}_{p}^{*} $,并计算承诺$ R={g}^{a\cdot k} $。其中,$ {g} $为系统生成元,$ {a} $为公开参数。随后,系统生成的密钥$ {S} {K} $包含一个绑定组件(记作$ {{K}}_{1} $),其结构一般如式(13)所示。
$ {K}_{1}={g}^{\alpha \cdot {{\boldsymbol{d}}}_{1}}\cdot {g}^{a\cdot k\cdot {{\boldsymbol{d}}}_{1}}\cdot \mathrm{\varDelta } $
其中,$ \mathrm{\alpha } $为系统的随机因子,$ {\boldsymbol{d}}_{1} $为选定的基向量(来自双正交基,Dual Pairing Vector Spaces,DPVS),$ \varDelta $表示其他正常运算中引入的项(在合法生成时会被正交性抵消)。
在合法密钥中,$ {{g}}^{{a}\cdot {k}} $必须与用户提交的承诺$ {R} $保持一致。追踪算法Trace会通过对比密钥中包含的承诺信息与预先记录的$ {R} $来判断密钥的合法性。
KeySanityCheck的检验条件如式(14)所示。
$ \mathrm{C}\mathrm{h}\mathrm{e}\mathrm{c}\mathrm{k}:e({K}_{1},{g}^{{{\boldsymbol{d}}}_{1}^{*}})=y\cdot e({g}^{a\cdot k},\mathcal{K}) $
其中,$ \mathrm{y} $$ \mathcal{K} $为系统中其他公开的参数。只有满足此条件,密钥才被认为是“格式正确”的(well-formed)。
(1)针对恶意用户的伪造
假设攻击者A在与合法用户交互后,得到一组合法密钥,同时能够伪造出一个新的密钥$ {S} {{K}}^{{\prime}} $,其对应于某个新身份$ {I}{{D}}^{{*}} $(或同一身份但随机数发生改变)。设伪造密钥中包含的绑定组件如式(15)所示。
$ {K}_{1}^{\mathrm{\prime}}={g}^{\alpha \cdot {{\boldsymbol{d}}}_{1}}\cdot {g}^{a\cdot {k}^{\mathrm{\prime}}\cdot {{\boldsymbol{d}}}_{1}}\cdot {\mathrm{\varDelta }}^{\mathrm{\prime}} $
而合法密钥中应包含的绑定信息如式(16)所示。
$ R={g}^{a\cdot k} $
如果$ {{k}}^{{\prime}}\ne {k} $(即伪造密钥中的承诺与真实交互用户计算的承诺不同),则有如式(17)和式(18)所示的结果。
$ \frac{{K}_{1}^{\mathrm{\prime}}}{{g}^{\alpha \cdot {{\boldsymbol{d}}}_{1}}\cdot {\mathrm{\varDelta }}^{\mathrm{\prime}}}={g}^{a\cdot {k}^{\mathrm{\prime}}\cdot {{\boldsymbol{d}}}_{1}} $
$ \frac{{K}_{1}^{\mathrm{\prime}}}{{g}^{\alpha \cdot {{\boldsymbol{d}}}_{1}}\cdot {\mathrm{\varDelta }}^{\mathrm{\prime}}}={g}^{a\cdot k\cdot {{\boldsymbol{d}}}_{1}} $
因此,可计算得出结论。
$ {g}^{a\cdot ({k}^{\mathrm{\prime}}-k)\cdot {{\boldsymbol{d}}}_{1}}=\frac{{g}^{a\cdot {k}^{\mathrm{\prime}}\cdot {{\boldsymbol{d}}}_{1}}}{{g}^{a\cdot k\cdot {{\boldsymbol{d}}}_{1}}} $
由于$ {{g}}^{{a}\cdot {{{\boldsymbol{d}}}}_{1}} $和其离散对数已知,可提取$ {{k}}^{{\prime}}-{k} $的离散对数,从而破解DLP问题。因此,若攻击者A成功伪造出一个与原承诺不一致的密钥,其成功概率将转化为构造解决DLP问题的规约算法$ {{\beta }}_{1} $
(2)针对恶意权限中心的伪造
在恶意权限中心游戏中,攻击者A通过权限中心控制密钥生成过程,其目标是生成一个密钥$ {S} {{K}}^{{\prime}} $,使得追踪算法Trace输出一个用户身份$ {I}{{D}}^{{\prime}} $,在承诺$ {{R}}^{{\prime}} $与实际用户交互中记录的不符的同时,又能使密钥通过KeySanityCheck的检查。
在这种情况下,密钥$ {S} {{K}}^{{\prime}} $的生成可能会引入额外的随机性(或半功能项)。设伪造密钥生成时,密钥的关键组件如式(20)所示。
$ {K}_{1}^{\mathrm{\prime}}={g}^{\alpha \cdot {{\boldsymbol{d}}}_{1}}\cdot {g}^{a\cdot {k}^{*}\cdot {{\boldsymbol{d}}}_{1}}\cdot {g}^{\tau \cdot {{\boldsymbol{d}}}_{\mathrm{a}\mathrm{u}\mathrm{x}}} $
其中,$ {{{\boldsymbol{d}}}}_{\mathrm{a}\mathrm{u}\mathrm{x}} $为除$ {{{\boldsymbol{d}}}}_{1} $之外的某个基向量(或是由半功能构造引入的额外正交分量),且$ \mathrm{\tau }\ne 0 $是攻击者选择的非零随机量。
如果攻击者A试图伪造出一个与用户原始承诺$ {R}={{g}}^{{a}\cdot {k}} $不匹配的绑定信息,则必定会在$ {{K}}_{1}^{{\prime}} $中引入额外的项$ {{g}}^{\mathrm{\tau }\cdot {{{\boldsymbol{d}}}}_{\mathrm{a}\mathrm{u}\mathrm{x}}} $。利用DPVS的正交性,追踪算法在对比合法性时将检测到此额外项。证明者可以利用这种额外项构造出满足式(21)形式的等式。
$ {g}^{\tau \cdot {{\boldsymbol{d}}}_{\mathrm{a}\mathrm{u}\mathrm{x}}}=\frac{{K}_{1}^{\mathrm{\prime}}}{{g}^{\alpha \cdot {{\boldsymbol{d}}}_{1}}\cdot {g}^{a\cdot {k}^{*}\cdot {{\boldsymbol{d}}}_{1}}} $
从而可以进一步归约为构造出一个满足$ {{g}}^{1/({x}+{c})} $形式的值($ {x} $来自q-SDH实验的挑战参数,$ {c} $为某常数),这正是q-SDH问题要求解的目标。即若能提取出上述额外项,就能构造算法$ {{\beta }}_{2} $,使其以非可忽略的概率解决q-SDH问题。
由于DLP和q-SDH均被假设为难题,归约算法$ {\mathrm{\beta }}_{1} $$ {\mathrm{\beta }}_{2} $不可能以非可忽略的概率成功。因此,攻击者A伪造出一个能通过KeySanityCheck检查且使Trace输出错误绑定信息的密钥的概率也必须是可忽略的。

6 方案质量分析

本节从稳健性和时间损耗两个方面对本方案与其他数据共享方案进行了比较。实验基于Java语言开发,使用IntelliJ IDEA编译器完成,所有实验均在一台桌面设备上运行,设备配置为64位Windows 10操作系统、16 GB内存、Intel Core i7-9700 CPU @3.0 GHz。关于云计算部分,模拟一个运行Ubuntu 20.04的云服务器环境,配置为8核处理器和32 GB内存。区块链智能合约的部署和执行基于以太坊框架,采用Solidity语言开发,并使用Ganache工具模拟私有区块链网络。

6.1 稳健性分析

为了解决单点故障和权力过度集中的问题,本方案采用多个属性权威,使系统只有在以下两种情况下才会无法正常运行:
(1)失效的属性权威数量超过n-k+1;
(2)被控制的属性权威数量超过k
其中,n是属性权威($ A $)的总数,k是一个阈值,即保障系统正常运行所需要的关键组件数量。d是攻击者使单个属性权威失效的概率,这个概率遵循二项分布,即在固定次数的独立实验中,每次实验只有两种可能结果(成功或失败),系统崩溃概率函数如式(22)所示。
$ {P}{{r}}_{\mathrm{d}\mathrm{o}\mathrm{w}\mathrm{n}}^{\mathrm{S}\mathrm{y}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{m}}=\sum _{\sigma =n-k+1}^{n}\left(\genfrac{}{}{0pt}{}{n}{\sigma }\right){d}^{\sigma }{\left(1-d\right)}^{n-\sigma } $
分别测试了n=8和n=16时的系统崩溃概率,如图3所示。
图 3 系统崩溃概率

Fig.3 Probability of system crash

显然,即使单个属性失控概率较高(如达到20%),在$ k= 1 $$ k= 2 $的情况下,系统的整体崩溃概率仍然保持在较低水平,说明本方案利用分布式架构分散了风险,即使多个属性关键点受到攻击失效,仍然能保证系统的稳定,具备较强的鲁棒性。
此外,为了描述系统的安全性,本文采用基于概率的数学模型来计算攻击者控制系统的可能性。假设系统由$ n $个属性授权方组成,而攻击者对单个$ A $的控制概率为$ {P}{{r}}_{{A}{A},\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{t}\mathrm{r}\mathrm{o}\mathrm{l}}=h $。攻击者只有在控制了超过$ k $$ A $的情况下才能完全控制系统。在这种假设下,系统被攻击者控制的概率$ {P}{{r}}_{\text{System controlled}} $如式(23)所示。
$ {P}{{r}}_{\text{System controlled}}=\sum _{\sigma =k}^{n}\left(\genfrac{}{}{0pt}{}{n}{\sigma }\right){h}^{\sigma }(1-h{)}^{n-\sigma } $
其中,$ \left(\genfrac{}{}{0pt}{}{n}{\sigma }\right) $表示从$ n $$ A $中选取$ \sigma $$ A $的组合数,$ {h}^{\sigma } $表示攻击者控制$ \sigma $$ A $的概率,而$ (1-h{)}^{n-\sigma } $表示剩余$ n-\sigma $$ A $未被攻击者控制的概率。分别测试n=8n=16时,对$ \sigma $$ k $$ n $求和所得的系统被控制的总概率,如图4 所示。
图 4 系统被控制概率

Fig.4 Probability of system being controlled

从实验结果可知,系统被控制概率随着单个属性被攻击者控制概率的增加而显著上升,说明属性的安全性对整个系统的安全性至关重要,降低单个属性被控制的概率,可以有效降低系统被完全控制的风险。同时,当系统的属性总数量$ n $增加时,系统被攻击者控制的概率显著降低。因此,合理设置属性数量和阈值可以降低攻击者的控制难度,从而提高系统的整体安全性。
综上所述,本方案可以通过灵活调整参数$ n $$ k $来适应不同的安全需求,从而提升系统的安全性和可扩展性,显著提高系统对抗攻击的能力。

6.2 性能分析

实验中使用的椭圆曲线为A型,其表达式为$ {y}^{2}={x}^{3}+x $。具体参数设置为:$ \mid {G}_{1}\mid =\mid {G}_{2} \mid =2\;048 $位,$ {\mathbb{Z}}_{p}=256 $位,以确保较高的安全性。为了评估解密算法的外包过程,模拟客户端与云服务器之间的交互,确保客户端的计算开销降到最低。本文将各主流访问控制方案的研究特点归纳于表3中。基于表4所定义的符号,本文将从存储成本和计算成本两个方面将本方案与其他医疗数据共享方案进行比较。
表 3 主流访问控制方案的特点

Table 3 Characteristics of mainstream access control schemes

主流方案 策略隐藏 权限撤销 解密外包 区块链技术 可溯性 审问机制 多属性权威
Li[23] × × × ×
Liu[24] × × × ×
Xu[25] × × × × ×
Xu[26] × × × ×
Sethi[27] × × × ×
Ours

注:√ 表明该方案满足所述特性;× 表明该方案不满足所述特性。

表 4 符号定义

Table 4 Symbol definitions

符号 描述
|p| 公共参数$ {\mathbb{Z}}_{p} $大小
|SKID,P| 用户解密密钥大小
|CT| 密文大小
|U| 通用属性集大小
|A| 用户属性集大小
AID 用户ID
m 访问控制矩阵M的行数
|G1| G1中元素的位长度
|G2| G2中元素的位长度
N 系统中用户数
t 群元素运算参数
nc 与先前访问策略关联的属性数
存储成本:$ \mid p\mid $为系统中所必要的信息,如生成元和其他常量;$ \mid S {K}_{ID,P}\mid $为依赖$ \mid S\mid $$ {A}_{id} $的加权组合,呈线性关系;$ \mid CT\mid $与加密所涉及的群元素数和m成正比。
计算成本:加密算法ENC()的计算成本通常包括对数据的加密过程,如生成密文的群运算、随机数生成等,与密文大小、群的元素大小和访问控制矩阵的行数成正比;解密算法OutDec()的计算成本通常与用户的解密密钥大小和密文大小成正比,与属性集大小$ \mid S\mid $和群中元素的位长度相关;密钥匹配KeyMatch()涉及检查解密密钥是否符合访问控制策略,通常与用户的解密密钥大小和访问控制矩阵$ \boldsymbol{M} $相关。结果如表5表6所示。
表 5 存储成本比较

Table 5 Comparison of storage cost

主流方案 |p| |SKID,P| |CT|
Liu[24] $ \dfrac{1}{2}\mid A\mid $ $ 2\mid A\mid +\mathrm{l}\mathrm{o}\mathrm{g}(N+1)\mid {G}_{1}\mid $ $ {n}_{c}(3\mid {G}_{1}\mid +\mid {G}_{2}\mid )+\mid {G}_{2}\mid $
Xu[25] $ 8\mid {G}_{1}\mid +\mid {G}_{2}\mid $ $ (3+4\mid A\mid )\mid {G}_{1}\mid $ $ (2+3m)\mid {G}_{1}\mid +\mid {G}_{2}\mid $
Xu[26] $ 8\mid {G}_{1}\mid +2\mid {G}_{2}\mid $ $ (4+3\mid A\mid )\mid {G}_{1}\mid +\mid {G}_{2}\mid $ $ (4+2m)\mid {G}_{1}\mid +\mid {G}_{2}\mid $
Sethi[27] $ 4\mid {G}_{1}\mid +\mid {G}_{2}\mid $ $ 4\mid A\mid +1 $ $ 5m+1 $
Ours $ 4\mid {{G}}_{1}\mid +\mid {{G}}_{2}\mid $ $ (4+2\mid {A}\mid )\mid {{G}}_{1}\mid $ $ (2+3{m})\mid {{G}}_{1}\mid +\mid {{G}}_{2}\mid $
表 6 计算成本比较

Table 6 Comparison of computational cost

主流方案 $ {\mathrm{ENC}}\left(\right) $ $ {\mathrm{OutDec}}\left(\right) $ $ {\mathrm{KeyMatch}}\left(\right) $
Liu[24] $ (2+3\mid {G}_{1}\mid )t+t\mid {G}_{2}\mid $ $ (3+2\mid A\mid )t\mid G1\mid $ $ (1+3\mid A\mid )t $
Xu[25] $ 8\mid {G}_{1}\mid +\mid {G}_{2}\mid $ $ (3t+2)\mid Gl\mid +\mid {G}_{2}\mid $ $ 8\mid {G}_{1}\mid +\mid {G}_{2}\mid $
Xu[26] $ (2+3m)\mid {G}_{1}\mid +m\mid p\mid $ $ (4+\mid A\mid )t\mid {G}_{1}\mid $ $ (4+2\mid A\mid )t $
Sethi[27] $ (3+4\mid {G}_{1}\mid )t+t\mid {G}_{2}\mid $ $ (3+2\mid A\mid )t\mid {G}_{1}\mid $ $ (1+2\mid A\mid )t $
Ours $ (2+3\mid {{G}}_{1}\mid ){t}+{t}\mid {{G}}_{2}\mid $ $ (2+\mid {A}\mid ){t}\mid {{G}}_{1}\mid $ $ (1+3\mid {A}\mid ){t} $
在实验中,将DU的属性集范围从10调整至50,分别测试了各个常用方案的系统公共参数、密文、解密密钥的存储空间以及加密、密钥生成、解密的执行时间,如图5所示。
图 5 存储与计算开销比较

Fig.5 Comparison of storage and computational cost

根据图表显示,本方案在存储和计算开销方面具有优势。随着属性数量的增加,本方案始终保持较小的增幅,尤其在公共参数和解密密钥大小方面,明显优于其他方案,表现出较低的存储开销。其次,尽管加密操作的开销随着属性数量的增加而增大,但本方案的增速较慢,显示出较为平稳的计算复杂度。在解密密钥生成和外包解密开销方面,本方案也表现得较为高效。总体而言,随着属性数量的增加,本方案能够在保证性能的同时,避免过大的计算和存储开销,表现出更好的扩展性和效率。
为了验证本地解密与外包解密在时间损耗方面的差异,设计了定量比较机制,评估外包机制在降低端侧计算负担和提高解密效率方面的效果,如图6所示
图 6 本地与外包解密比较

Fig.6 Comparison between local and outsourced decryption

由于CSP拥有高性能的计算集群或专用服务器,具备强大的CPU计算能力,能够利用多核并行处理技术来加速运算,因此,可以有效降低本地设备的计算负担,终端设备仅须执行较轻量级的后处理任务。在实际应用中,通信开销往往远低于本地执行重计算任务所需的时间。
综上所述,采用将解密算法外包给CSP的方案能够显著减少时间损耗,并且在实际应用中能够实现加密与解密过程的高效协同,满足对大规模数据处理和实时性要求较高的场景需求。

6.3 智能合约

本方案利用智能合约记录每次数据访问的详细信息,包括用户属性、访问时间和数据标识符,确保访问行为的透明性和可追溯性。区块链网络的出块时间设置为15 s,并测量了智能合约执行的平均Gas成本。所有实验均在接近真实场景的条件下进行,以验证方案的实际可行性。合约实现伪码如表7所示。
表 7 Solidity智能合约子进程代码

Table 7 Subprocess code of Solidity smart contract

SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// 定义合约,用于记录数据访问日志
contract DataAccessLogger {
  struct AccessRecord {
     bytes32 dataHash; // 数据的哈希值,用于标识数据
     address userKey; // 用户地址,标识进行访问的用户
     string providerID; // 数据提供者的ID
     uint256 timestamp; // 记录访问时间的时间戳
} // 定义数据访问记录的结构体
  AccessRecord[] public accessRecords; // 定义数组,用于存储所有的数据访问记录(公有变量,自动生成 getter 函数)
  event DataAccessed(
     bytes32 dataHash,
     address userKey,
     string providerID,
     uint256 timestamp
  ); // 定义事件,当数据被访问时会发出此事件通知
  mapping(address => bool) public authorizedUsers; // 定义映射,记录被授权的用户,只有被授权的用户才能记录数据访问
  mapping(address => string) public providerIDs;
address public owner;
  constructor() {
     owner = msg.sender;
   } // 构造函数:合约部署时执行,设置部署者为合约所有者
   function setProviderID(string memory providerID) public {
     require(msg.sender == owner, “Only the owner can set the provider ID”);
     providerIDs[msg.sender] = providerID;
   } // 设置数据提供者的ID,仅合约所有者可以调用此函数
   function authorizeUser(address user) public {
     require(msg.sender == owner, “Only the owner can authorize users”);
     authorizedUsers[user] = true;
   } // 授权用户,只有合约所有者可以调用此函数,将用户地址添加到授权列表中
   function recordDataAccess(bytes32 dataHash, address userKey) public {
     require(authorizedUsers[userKey], “User not authorized” );
     string memory providerID = providerIDs[msg.sender];
     require(bytes(providerID).length > 0,“Provider ID not set” );
     AccessRecord memory newRecord = AccessRecord({
        dataHash: dataHash,
        userKey: userKey,
        providerID: providerID,
        timestamp: block.timestamp
     }); // 创建一个新的数据访问记录结构体
     accessRecords.push(newRecord); // 将新的记录添加到记录数组中
     emit DataAccessed(dataHash, userKey, providerID, block.timestamp); // 触发事件,通知数据访问操作
   }
   function getAccessRecord(uint256 index) public view returns (AccessRecord memory) {
     require(index < accessRecords.length, "Index out of bounds"); // 检查索引是否有效
     return accessRecords[index];
   } // 根据索引获取数据访问记录(只读函数)
   function getAccessRecordCount() public view returns (uint256) {
     return accessRecords.length;
   } // 获取总的数据访问记录数量(只读函数)
}
事件可以通过区块链浏览器查看或利用web3.js等工具进行监听和输出。使用getAccessRecord函数查询某条特定访问记录,返回结果如表8所示。
表 8 函数返回结果

Table 8 Function return results

{
 "dataHash": "0xabc123...",
 "userKey": "0xdef456...",
 "providerID": "provider123",
 "timestamp": 1673961600
}
引入智能合约实现共享方案的可溯性和审计性,数据访问会触发事件并记录在区块链上,系统用户可对记录进行查询,为DU 和DO提供了强有力的保障。

7 结束语

本方案提供了一种可追溯的数据共享机制,旨在解决现有数据共享方案中存在的一些关键问题。传统的数据共享系统通常缺乏对访问行为的有效追溯,这使得在多方参与的共享环境中,数据的使用情况和使用者的行为难以被准确追踪和审计。本方案通过结合属性基加密和可追溯机制,使得数据的共享过程可以在保证隐私的前提下,精确记录每次访问的详细信息。这不仅提升了数据的安全性和可控性,还增强了数据访问的透明度,有助于确保数据使用的合规性和合法性,防止未授权访问和潜在的数据泄露风险。
然而,尽管本方案在数据共享和隐私保护方面进行了显著改进,但仍存在一些可优化的地方,特别是在系统的搜索匹配功能方面。当前的设计虽然能够保障数据的安全性和访问的可追溯性,但并不支持对密文数据进行搜索和匹配操作。具体来说,当数据被加密后,用户无法直接在密文中执行搜索或筛选操作,这在某些应用场景中可能会造成不便。例如,当用户需要从大量的加密数据中查找特定的内容时,现有方案无法有效支持此类需求。因此,如何在确保数据安全性的前提下,实现对密文数据的高效搜索和匹配,将是接下来的研究重点。
为了弥补这一不足,未来的改进方向之一是引入“加密搜索”技术。例如,基于同态加密(Fully Homomorphic Encryption,FHE)或可搜索加密(Searchable Encryption,SE)技术,可以在不解密数据的情况下进行搜索和匹配。这种技术能够在保证数据隐私的前提下,支持对加密数据进行灵活的查询操作。我们计划结合这些前沿的加密技术,提升现有方案的功能,使其不仅能确保数据的安全性和隐私性,还能满足高效的数据查询需求。
此外,我们还将在系统的可扩展性和性能方面进行进一步优化,确保在数据量和用户数量增加时,系统依然能够保持较高的处理效率。综合来看,尽管本方案已经在数据共享的安全性和可追溯性方面取得了显著进展,但仍有许多优化空间。我们将通过引入更先进的技术和改进现有机制,进一步提升系统的功能和性能,推动数据共享领域的发展。
1
SULISTIYANI E, IRAWAN I, WULAN T D, et al. Benefit realization measurement: Do electronic medical records improve the effectiveness of data management[C]//2023 International Seminar on Application for Technology of Information and Communication (iSemantic). IEEE, 2023: 158-163.

2
YU K, TAN L, LIN L, et al. Deep-learning-empowered breast cancer auxiliary diagnosis for 5GB remote E-health[J]. IEEE Wireless Communications, 2021, 28 (3): 54- 61.

DOI

3
MOQURRAB S A, AYUB U, ANJUM A, et al. An accurate deep learning model for clinical entity recognition from clinical notes[J]. IEEE Journal of Biomedical and Health Informatics, 2021, 25 (10): 3804- 3811.

DOI

4
UGWU A O, GAO X, UGWU J O, et al. Ethical implications of AI in healthcare data: A case study using healthcare data breaches from the US department of health and human services breach portal between 2009-2021[C]//2022 International Conference on Industrial IoT, Big Data and Supply Chain (IIoTBDSC). IEEE, 2022: 343-349.

5
HUANG Q, YAN G, YANG Y. Privacy-preserving traceable attribute-based keyword search in multi-authority medical cloud[J]. IEEE Transactions on Cloud Computing, 2021, 11 (1): 678- 691.

6
GE C, SUSILO W, LIU Z, et al. Attribute-based proxy re-encryption with direct revocation mechanism for data sharing in clouds[J]. IEEE Transactions on Dependable and Secure Computing, 2024, 21: 949-960.

7
LUO F, WANG H, LIN C, et al. Abaeks: Attribute-based authenticated encryption with keyword search over outsourced encrypted data[J]. IEEE Transactions on Information Forensics and Security, 2023, 18, 4970- 4983.

DOI

8
WANG R, LAI J, ZHANG Z, et al. Privacy-preserving federated learning for internet of medical things under edge computing[J]. IEEE Journal of Biomedical and Health Informatics, 2022, 27 (2): 854- 865.

9
SAI S, HASSIJA V, CHAMOLA V, et al. Federated learning and NFT-based privacy-preserving medical-data-sharing scheme for intelligent diagnosis in smart healthcare[J]. IEEE Internet of Things Journal, 2023, 11 (4): 5568- 5577.

10
ZHOU X, HUANG W, LIANG W, et al. Federated distillation and blockchain empowered secure knowledge sharing for internet of medical things[J]. Information Sciences, 2024, 662, 120217.

DOI

11
ZHANG M, LIN F, TIAN L, et al. Evolutionary medical data modeling and sharing via federated learning over sharded blockchain[J]. IEEE Internet of Things Journal, 2024, 11 (13): 24234- 24246.

DOI

12
SAMUEL O, OMOJO A B, ONUJA A M, et al. IoMT: A COVID-19 healthcare system driven by federated learning and blockchain[J]. IEEE Journal of Biomedical and Health Informatics, 2022, 27 (2): 823- 834.

13
SALIM M M, PARK J H. Federated learning-based secure electronic health record sharing scheme in medical informatics[J]. IEEE Journal of Biomedical and Health Informatics, 2022, 27 (2): 617- 624.

14
TAO Y, ZHU Y, GE C, et al. ORR-CP-ABE: A secure and efficient outsourced attribute-based encryption scheme with decryption results reuse[J]. Future Generation Computer Systems, 2024, 161, 559- 571.

DOI

15
YU F, SHEN H, YU Q, et al. Privacy protection of medical data based on multi-scroll memristive Hopfield neural network[J]. IEEE Transactions on Network Science and Engineering, 2022, 10 (2): 845- 858.

16
LI J, CAIRNS B J, LI J, et al. Generating synthetic mixed-type longitudinal electronic health records for artificial intelligent applications[J]. NPJ Digital Medicine, 2023, 6 (1): 98.

DOI

17
JIANG R, LIU R, ZHANG T, et al. An electronic medical record access control model based on intuitionistic fuzzy trust[J]. Information Sciences, 2024, 658, 120054.

DOI

18
BAO Z, HE D, WANG H, et al. A group signature scheme with selective linkability and traceability for blockchain-based data sharing systems in e-health services[J]. IEEE Internet of Things Journal, 2023, 10 (23): 21115- 21128.

DOI

19
LI H, HUANG Q, HUANG J, et al. Public-key authenticated encryption with keyword search supporting constant trapdoor generation and fast search[J]. IEEE Transactions on Information Forensics and Security, 2022, 18, 396- 410.

20
LAI C, ZHANG H, LU R, et al. Privacy-preserving medical data sharing scheme based on two-party cloud-assisted PSI[J]. IEEE Internet of Things Journal, 2024, 11 (9): 15855- 15868.

DOI

21
LI C, DONG M, XIN X, et al. Efficient privacy preserving in IoMT with blockchain and lightweight secret sharing[J]. IEEE Internet of Things Journal, 2023, 10 (24): 22051- 22064.

DOI

22
薛腾飞, 傅群超, 王枞, 等. 基于区块链的医疗数据共享模型研究[J]. 自动化学报, 2017, 43 (9): 1555- 1562.

XUE T F, FU Q C, WANG Z, et al. Research on medical data sharing model based on blockchain[J]. Acta Automatica Sinica, 2017, 43 (9): 1555- 1562.

23
LI Z, ZHANG J, ZHANG J, et al. Integrated edge computing and blockchain: A general medical data sharing framework[J]. IEEE Transactions on Emerging Topics in Computing, 2023, 12 (3): 924- 937.

24
LIU Z, JIANG Z L, WANG X, et al. Practical attribute-based encryption: Outsourcing decryption, attribute revocation and policy updating[J]. Journal of Network and Computer Applications, 2018, 108, 112- 123.

DOI

25
XU G, QI C, DONG W, et al. A privacy-preserving medical data sharing scheme based on blockchain[J]. IEEE Journal of Biomedical and Health Informatics, 2022, 27 (2): 698- 709.

26
XU S, NING J, LI Y, et al. A secure EMR sharing system with tamper resistance and expressive access control[J]. IEEE Transactions on Dependable and Secure Computing, 2021, 20 (1): 53- 67.

27
SETHI K, PRADHAN A, BERA P. Practical traceable multi-authority CP-ABE with outsourcing decryption and access policy updation[J]. Journal of Information Security and applications, 2020, 51, 102435.

DOI

28
YANG C N, LI P, CHENG H H, et al. A security model of multihospital FHIR database authorization based on secret sharing and blockchain[J]. IEEE Internet of Things Journal, 2023, 11 (6): 10325- 10335.

29
TAN M, WANG X, SHANG S, et al. Blockchain-based cross-domain access control mechanism[C]//2022 5th International Conference on Information Communication and Signal Processing (ICICSP). IEEE, 2022: 499-506.

30
SELVARAJAN S, MOURATIDIS H. A quantum trust and consultative transaction-based blockchain cybersecurity model for healthcare systems[J]. Scientific Reports, 2023, 13 (1): 7107.

DOI

31
LI Q, XIA B, HUANG H, et al. TRAC: Traceable and revocable access control scheme for mHealth in 5G-enabled IIoT[J]. IEEE Transactions on Industrial Informatics, 2021, 18 (5): 3437- 3448.

32
QU Z, KUMARI S, OBAIDAT M S, et al. Traceable attribute-based encryption with equality test for cloud enabled E-health system[J]. IEEE Journal of Biomedical and Health Informatics, 2023, 28 (9): 5033- 5042.

33
XU Z, HE D, VIJAYAKUMAR P, et al. Certificateless public auditing scheme with data privacy and dynamics in group user model of cloud-assisted medical WSNs[J]. IEEE Journal of Biomedical and Health Informatics, 2021, 27 (5): 2334- 2344.

34
LIU Z, CAO Z, WONG D S. White-box traceable ciphertext-policy attribute-based encryption supporting any monotone access structures[J]. IEEE Transactions on Information Forensics and Security, 2012, 8 (1): 76- 88.

文章导航

/