【信息安全毕业设计】基于零知识证明的区块链医疗数据细粒度共享方案研究
目录
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
选题指导:
大家好,这里是海浪学长毕设专题,本次分享的课题是:
🎯基于零知识证明的区块链医疗数据细粒度共享方案研究
选题背景
随着医疗信息化的深入发展和人们健康意识的提高,个人健康记录(PHR)的共享需求日益增长。PHR作为患者个人健康信息的重要载体,包含了敏感的医疗数据,如诊断记录、治疗方案、检查结果等。这些数据的安全共享对于提高医疗服务质量、促进医学研究具有重要意义。然而,PHR共享过程中面临着诸多挑战,主要包括数据隐私泄露、数据不可信、计算开销大等问题。

在传统的PHR共享模式中,通常依赖中心化的第三方服务器进行数据存储和管理,这种模式存在单点故障、权限集中、数据易被篡改等安全隐患。同时,随着云计算技术的广泛应用,将PHR数据存储在云端可以降低存储成本,但同时也带来了数据隐私和安全的新挑战。云服务器可能不可信,用户数据在云端的安全存储和计算成为亟待解决的问题。
属性基加密(ABE)作为一种细粒度的访问控制技术,能够实现基于属性的加密和访问控制,为PHR共享提供了良好的技术支持。然而,传统的ABE方案在计算开销方面存在不足,特别是在移动设备等计算资源受限的环境中,加解密操作可能导致严重的性能瓶颈。此外,在PHR共享过程中,不仅需要保护数据隐私,还需要保护用户的属性隐私,避免通过属性信息推断出用户的个人信息。

区块链技术作为一种分布式账本技术,具有去中心化、不可篡改、透明可信等特点,为解决PHR共享中的数据可信性问题提供了新的思路。通过将PHR数据的访问控制策略和交易记录存储在区块链上,可以确保数据共享的透明性和可追溯性,提高数据共享的可信度。同时,区块链上的智能合约可以自动执行访问控制策略,实现可信的自动执行。

在当前医疗信息化快速发展的背景下,如何结合区块链技术和密码学技术,设计高效、安全、隐私保护的PHR共享机制,成为学术界和工业界共同关注的重要问题。本研究正是在这一背景下展开,旨在为PHR的安全共享提供新的解决方案,推动医疗信息化的健康发展。
项目功能
基于区块链和可验证外包属性基加密的PHR可信共享方案
采用离线/在线加密分离技术,将加密操作分为离线和在线两个阶段。离线阶段执行大部分计算开销大的操作,约占整个加密过程的40%,这部分操作可以在用户空闲时完成。在线阶段仅需执行少量轻量级操作,极大提高了用户端的加密效率,特别适合移动设备等计算资源受限的场景。
将大部分解密操作外包给云服务器执行,同时设计了可验证机制确保云服务器诚实计算。用户只需进行一次群上的指数运算即可完成最终解密,计算开销极小。智能合约负责验证云服务器返回的预解密结果是否正确,只有验证通过后,用户才能获取最终的解密数据,云服务器也才能获得相应的奖励。
利用区块链的不可篡改性和智能合约的自动执行特性,建立了基于区块链的信任机制。属性密钥查询和数据解密查询等关键操作均记录在区块链上,确保了操作的透明性和可追溯性。同时,智能合约实现了解密验证算法,自动验证云服务器的计算结果,避免了第三方信任问题。采用Shamir秘密共享方案,将解密密钥分享给区块链上的共识节点,确保即使单个节点被攻击,也不会导致密钥泄露。这种分布式的密钥管理方式增强了系统的安全性和可靠性。
基于区块链的保护属性隐私的PHR共享方案
属性隐私保护
本方案通过零知识证明(ZKP)技术,特别是zk-SNARK,将LSSS的份额生成矩阵嵌入零知识证明电路中,实现了在验证属性权限的同时保护属性信息。用户在验证过程中不需要披露具体的属性值,只需要证明自己拥有满足访问策略的属性集合,有效防止了属性隐私泄露。
细粒度访问控制
采用部分隐藏策略的ABE实现细粒度访问控制,数据拥有者可以根据不同的需求和场景,灵活设置访问策略,控制哪些用户可以访问特定的PHR数据。同时,通过智能合约自动执行访问控制策略,确保策略执行的一致性和可靠性。
安全高效的密文搜索
设计了支持关键字密文搜索的算法,实现了在保护数据隐私的前提下快速检索所需信息。搜索算法满足选择性关键字攻击下的不可区分安全,确保了搜索过程的安全性。智能合约负责验证和执行搜索操作,保证了搜索结果的正确性和可靠性。
分布式存储与区块链结合
采用星际文件系统(IPFS)存储加密后的PHR数据,不仅提高了数据存储的安全性,还节省了区块链的存储开销。区块链仅存储数据索引和访问控制信息,通过智能合约实现数据访问的授权和验证,形成了高效的分布式存储和管理架构。
算法理论
属性基加密(ABE)理论
属性基加密是一种基于用户属性的加密方案,能够实现细粒度的访问控制。在本研究中,主要采用基于密文策略的属性基加密(CP-ABE),其中加密方可以自由定义访问策略,解密方只有当其属性满足访问策略时才能解密数据。CP-ABE的核心思想是将访问策略嵌入到密文中,将用户属性嵌入到密钥中,只有当用户属性满足访问策略时,才能成功解密。
在CP-ABE中,通常使用线性秘密共享方案(LSSS)来表示访问策略。LSSS将共享的秘密分解为多个份额,并通过线性重构实现秘密恢复。具体来说,给定一个访问策略矩阵M,以及一个属性映射函数ρ,LSSS将一个秘密值s分解为多个份额,每个份额对应矩阵的一行和一个属性。当用户的属性满足访问策略时,可以通过线性组合恢复出秘密值s,从而完成解密。
可验证外包计算理论
可验证外包计算允许计算能力有限的客户端将计算任务外包给强大但不可信的服务器,并能够高效验证服务器返回的计算结果是否正确。在本研究中,我们设计了可验证外包解密算法,将ABE解密过程中的大部分计算外包给云服务器,同时确保用户能够验证计算结果的正确性。
可验证外包解密的核心在于构造一个验证机制,使用户能够以较小的计算开销验证云服务器返回的结果。在本方案中,验证过程主要依赖于双线性映射的性质,通过智能合约自动执行验证算法,确保云服务器诚实计算。验证通过后,用户只需执行一次简单的指数运算即可得到明文。
零知识证明理论
零知识证明允许证明者向验证者证明某个断言的正确性,而不泄露任何关于断言的额外信息。在本研究中,我们使用zk-SNARK来保护用户的属性隐私。zk-SNARK具有简洁性和非交互性的特点,非常适合区块链环境。

zk-SNARK的基本思想是将计算问题编码为电路,然后通过密码学方法生成一个简短的证明,证明者能够生成这个证明当且仅当计算正确执行。在本方案中,我们将LSSS的份额生成矩阵嵌入到zk-SNARK电路中,用户可以证明自己拥有满足访问策略的属性集合,而不需要披露具体的属性值。
区块链与智能合约理论
区块链是一种分布式账本技术,具有去中心化、不可篡改、透明可信等特点。在本研究中,我们主要使用Hyperledger Fabric联盟链,它支持模块化设计、可插拔共识机制、多语言智能合约开发等特性,非常适合企业级应用场景。

智能合约是运行在区块链上的自动执行的代码,能够根据预设条件自动执行相应的操作。在本方案中,智能合约主要负责实现以下功能:(1)验证云服务器返回的预解密结果;(2)管理属性密钥和数据访问的查询;(3)执行基于属性的访问控制策略;(4)实现安全高效的密文搜索功能。
核心代码
可验证外包解密智能合约算法
智能合约代码实现了可验证外包解密的核心功能:首先,它验证云服务器返回的预解密结果的正确性,这一步骤基于双线性映射的性质,确保预解密结果是诚实计算的。如果验证通过,智能合约会从区块链存储中获取解密密钥的共享份额,并使用Shamir秘密共享方案恢复完整的解密密钥。最后,使用恢复的密钥执行最终解密,得到明文数据。整个过程中,智能合约自动记录交易事件,确保操作的透明性和可追溯性。该算法的关键在于将复杂的验证逻辑和密钥恢复过程封装在智能合约中,使用户端只需要提交必要的参数,大大简化了用户操作。
function DecryptAndVerify(CT ct, PK pk, VK vk, PD pk_pd, PT pt) public returns (bool, bytes) {
// 步骤1: 验证预解密结果的正确性
bool verify_result = VerifyPartialDecrypt(ct, pk_pd, pt, vk);
// 步骤2: 如果验证通过,执行最终解密
if (verify_result) {
// 步骤2.1: 计算最终解密所需的参数
G1 element1 = Pairing.pairing(pt.value1, pk.g2);
G1 element2 = Pairing.pairing(ct.c, pk_pd.d);
G1 element3 = element1.div(element2);
// 步骤2.2: 从区块链存储中获取解密密钥的共享份额
bytes[] memory shares = GetKeyShares(msg.sender);
// 步骤2.3: 使用Shamir秘密共享恢复完整密钥
bytes memory secret_key = ShamirReconstruct(shares);
// 步骤2.4: 执行最终解密
bytes memory plaintext = FinalDecrypt(element3, secret_key, ct.ciphertext);
// 步骤2.5: 记录交易并更新状态
RecordDecryptionEvent(msg.sender, now, true);
return (true, plaintext);
} else {
// 验证失败,拒绝请求
RecordDecryptionEvent(msg.sender, now, false);
return (false, new bytes(0));
}
}
密文加密算法
算法分为离线和在线两个阶段:离线阶段生成并存储部分加密参数t,这部分操作计算开销较大,但可以在用户空闲时完成;在线阶段只需执行轻量级操作,包括选择随机数、计算密文组件和生成零知识证明。这种分离设计大大提高了用户端的加密效率,特别是对于移动设备等计算资源受限的场景。同时,算法还集成了零知识证明技术,确保在加密过程中不会泄露访问策略的敏感信息,进一步保护了用户隐私。
def Encrypt(mpk, m, A, rho, t):
# 步骤1: 离线阶段 - 生成并存储部分加密参数
# 这里假设t已经预先生成并存储
# 步骤2: 在线阶段 - 快速完成加密
# 步骤2.1: 选择随机数
s = random_Zp()
v = [s] + [random_Zp() for _ in range(A.shape[1]-1)]
# 步骤2.2: 计算密文组件
C_tilde = mpk.g**s
# 步骤2.3: 计算属性相关密文组件
C_i = []
D_i = []
for i in range(A.shape[0]):
lambda_i = (A[i] * v).sum()
C_i.append(mpk.g**lambda_i)
D_i.append(mpk.H[runtime.str(rho(i))]**lambda_i * t[i])
# 步骤2.4: 计算消息相关密文组件
C = m * e(mpk.g, mpk.g)**(s * t[0])
# 步骤2.5: 生成零知识证明
pi = generate_zk_proof(mpk, A, rho, s, v)
# 步骤2.6: 返回完整密文
return Ciphertext(C_tilde, C, C_i, D_i, pi)
密文搜索智能合约算法
智能合约代码实现了安全高效的密文搜索功能 ,它验证搜索请求中关键字令牌的有效性,确保搜索请求来自合法用户。然后,遍历区块链上存储的PHR数据索引,使用双线性映射技术验证每个密文是否包含搜索关键字。对于匹配的密文,还需要进一步验证用户是否拥有访问权限,只有同时满足关键字匹配和访问权限要求的数据才会被包含在搜索结果中。整个搜索过程中,密文数据始终保持加密状态,关键字和搜索结果也受到保护,确保了搜索过程的安全性和隐私性。此外,智能合约还记录搜索事件,实现了操作的可追溯性,进一步增强了系统的安全性。
async function VerifyAndSearch(mpk, CT, keyword_token, pk_sender) {
// 步骤1: 验证关键字令牌的有效性
const token_valid = await verifyKeywordToken(keyword_token, pk_sender);
if (!token_valid) {
return { success: false, error: "Invalid keyword token" };
}
// 步骤2: 提取搜索参数
const { K_w, K'_w } = keyword_token;
// 步骤3: 执行密文搜索
let results = [];
// 遍历区块链上的索引
for (const index of await getPHRIndices()) {
// 步骤3.1: 获取文件密文对应的搜索参数
const { C_w, C'_w } = await getSearchParams(index.fileId);
// 步骤3.2: 使用双线性映射验证关键字匹配
const result1 = pairing(K_w, C'_w);
const result2 = pairing(C_w, K'_w);
// 步骤3.3: 如果匹配,添加到结果集
if (result1.equals(result2)) {
// 步骤3.4: 验证访问权限
const access_granted = await checkAccessPolicy(CT, pk_sender, index.accessPolicy);
if (access_granted) {
results.push({
fileId: index.fileId,
metadata: index.metadata,
ipfsHash: index.ipfsHash,
timestamp: index.timestamp
});
}
}
}
// 步骤4: 记录搜索事件
await recordSearchEvent(pk_sender, keyword_token.keyword, results.length);
// 步骤5: 返回搜索结果
return { success: true, results };
}
重难点 创新点
可验证外包属性基加密方案
离线/在线加密分离
难点:传统的属性基加密方案在加密过程中需要执行大量的指数运算和双线性对运算,计算开销较大,不适合移动设备等计算资源受限的场景。
创新点:本研究设计了离线/在线分离的加密算法,将加密操作分为离线和在线两个阶段。离线阶段执行计算开销较大的操作,约占整个加密过程的40%,这部分操作可以在用户空闲时完成;在线阶段只需执行少量轻量级操作,极大提高了用户端的加密效率。这种分离设计有效解决了移动环境下的计算开销问题,使属性基加密技术更加实用。
可验证外包解密机制
难点:将解密操作外包给云服务器可以显著降低用户端计算开销,但如何确保不可信云服务器返回正确的计算结果是一个挑战。
创新点:本研究设计了可验证外包解密机制,结合区块链和智能合约技术,确保云服务器诚实计算。具体来说,云服务器执行预解密操作并返回结果,智能合约负责验证结果的正确性。只有验证通过后,用户才能获取最终的解密数据,云服务器也才能获得相应的奖励。这种机制有效解决了外包计算中的信任问题,同时大幅降低了用户端的计算开销。
属性隐私保护机制
基于零知识证明的属性验证
难点:在属性基加密系统中,用户需要出示自己的属性来证明访问权限,这可能导致属性隐私泄露,特别是在医疗健康等敏感领域。
创新点:本研究采用零知识证明技术,特别是zk-SNARK,实现了在验证属性权限的同时保护属性信息。具体来说,将LSSS的份额生成矩阵嵌入到零知识证明电路中,用户可以证明自己拥有满足访问策略的属性集合,而不需要披露具体的属性值。这种方法有效防止了属性隐私泄露,为用户提供了更高级别的隐私保护。
部分隐藏策略的细粒度访问控制
难点:传统的属性基加密方案在实现细粒度访问控制的同时,往往会在密文中暴露完整的访问策略,这可能导致策略隐私泄露。
创新点:本研究采用部分隐藏策略的属性基加密,在密文中只暴露部分访问策略信息,同时通过零知识证明保护敏感的策略信息。这种方法在保持细粒度访问控制能力的同时,进一步增强了系统的隐私保护性能。
区块链集成与系统架构
分布式密钥管理与Shamir秘密共享
难点:在去中心化系统中,如何安全地管理解密密钥是一个挑战,特别是在需要多方参与验证的场景下。
创新点:本研究采用Shamir秘密共享方案,将解密密钥分享给区块链上的共识节点。这种分布式的密钥管理方式不仅提高了系统的安全性,还确保了即使单个节点被攻击,也不会导致密钥泄露。同时,通过智能合约实现密钥份额的安全分发和恢复,进一步增强了系统的可靠性。
区块链与星际文件系统的结合
难点:区块链存储容量有限,直接存储大量的PHR数据会导致高昂的存储成本和性能问题。
创新点:本研究将区块链与星际文件系统(IPFS)相结合,使用IPFS存储加密后的PHR数据,区块链仅存储数据索引和访问控制信息。这种混合存储架构不仅解决了区块链存储容量的限制问题,还提高了数据存储的安全性和可访问性。同时,通过智能合约实现数据访问的授权和验证,形成了高效的分布式存储和管理系统。
支持关键字搜索的安全机制
难点:在保护数据隐私的前提下实现高效的密文搜索是一个技术挑战,特别是在需要同时保护关键字隐私的场景下。
创新点:本研究设计了支持关键字密文搜索的算法,结合智能合约技术,实现了安全高效的密文搜索功能。搜索算法满足选择性关键字攻击下的不可区分安全,确保了搜索过程的安全性。智能合约负责验证和执行搜索操作,保证了搜索结果的正确性和可靠性。这种机制使用户能够在保护数据隐私的前提下快速检索所需信息,提高了系统的实用性。
总结
本研究针对个人健康记录(PHR)共享中的安全与隐私保护问题,提出了两种创新性解决方案,分别解决了不同场景下的技术挑战。
第一种方案结合区块链技术与可验证外包属性基加密,实现了PHR数据的可信共享。通过离线/在线加密分离技术,大幅降低了用户端的加密开销,使系统更加适合移动设备等计算资源受限的场景。同时,设计了可验证外包解密机制,结合智能合约技术,确保云服务器诚实计算,有效解决了外包计算中的信任问题。方案的安全性基于q-DPBDHE2困难假设,证明满足选择性可重放选择密文安全(sRCCA),为PHR共享提供了高安全级别的保障。
第二种方案进一步保护属性隐私,通过零知识证明技术和部分隐藏策略实现细粒度访问控制,同时支持密文关键字搜索功能。方案将LSSS的份额生成矩阵嵌入到zk-SNARK电路中,实现了在验证属性权限的同时保护属性信息,有效防止了属性隐私泄露。同时,将区块链与星际文件系统相结合,形成了高效的分布式存储和管理架构,解决了区块链存储容量的限制问题。
实验仿真结果表明,两个方案在计算效率、存储开销和功能支持方面均具有明显优势。特别是在用户端计算效率方面,通过外包计算和离线/在线分离技术,大幅降低了用户的计算负担,提高了系统的实用性。
未来研究方向包括:考虑多属性权威下的系统实现,设计基于博弈理论的智能合约激励机制,以及研究抗量子攻击的密码学方案。本研究为PHR的安全共享提供了新的思路和方法,具有重要的理论意义和应用价值,有望推动医疗信息化的健康发展。
参考文献
[1] Tanwar S, Parekh K, Evans R. Blockchain based electronic healthcare record system for healthcare 4.0 applications[J]. Journal of Information Security and Applications, 2020, 50: 102407.
[2] Goyal V, Pandey O, Sahai A, et al. Attribute-based encryption for fine-grained access control of encrypted data[C]. Proceedings of the 13th ACM conference on Computer and communications security, 2006: 89-98.
[3] Zhang L, Zhang T, Wu Q, et al. Secure Decentralized Attribute-Based Sharing of Personal Health Records With Blockchain[J]. IEEE Internet of Things Journal, 2022, 9(14): 12482-12496.
[4] Zhang J, Yang Y, Liu X, et al. An Efficient Blockchain-Based Hierarchical Data Sharing for Healthcare Internet of Things[J]. IEEE Transactions on Industrial Informatics, 2022, 18(10): 7139-7150.
[5] Miao Y, Li F, Li X, et al. Verifiable outsourced attribute-based encryption scheme for cloud-assisted mobile e-health system[J]. IEEE Transactions on Dependable and Secure Computing, 2024, 21(4): 1845-1862.
[6] Ge C, Liu Z, Susilo W, et al. Attribute-based encryption with reliable outsourced decryption in cloud computing using smart contract[J]. IEEE Transactions on Dependable and Secure Computing, 2023, 21(2): 937-948.
[7] Wang L, Ding W, Yan Z, et al. EDDAC: An efficient and decentralized data access control scheme with attribute privacy preservation[J]. IEEE Internet of Things Journal, 2024, 11(8): 14579-14592.
更多推荐
所有评论(0)