基于属性加密和访问控制的区块链交易数据安全方案
在区块链技术的应用中,数据隐私保护和安全访问控制至关重要。本文将介绍一种基于属性加密(ABE)的解决方案,该方案通过智能合约实现了安全的供应链区块链交易。
1. 解决方案概述
该解决方案提供了两个智能合约:
-
PPP(公共参数和策略)
:用于建立基于属性的安全信任模型。
-
ppSCM
:基于ABE方案提供安全的数据访问控制。
该方案具有实际应用价值,能显著降低建立专用和隔离私有区块链的工作量和成本。
2. 系统与模型
2.1 供应链区块链技术
供应链场景涉及多个参与方,如供应商、买家、承运人、物联网公司和银行。区块链技术在其中的应用如下:
-
订单处理
:
1. 买家发出采购订单(PO),PO在区块链中创建并加盖时间戳。
2. 由于智能合约的编程特性,PO成为有效文件,其条款只有在有效时才能执行。
3. 假设交付文件也可注册在区块链上,发票、PO和提单的元数据可通过智能合约自动匹配,实现快速发票审批。
-
发货
:
- IoT跟踪能力是关键,可跟踪物料流和文件流。
- 智能合约和加密多签名可保护交易文档和产品内容。
-
发票开具
:
- 区块链服务可将发票信息注册在链上,避免重复和欺诈。
- 每个发票在网络中分发、哈希和时间戳,形成唯一标识符。
- 智能合约可控制区块链上的资产并触发自动支付。
-
支付
:
- 区块链支付可实现点对点电子现金交易,减少中间环节和交易费用。
- 区块链解决方案可提高银行间支付效率,消除对账需求。
为提供数据隐私保护,在原有供应链流程中增加了两个模块:
-
智能合约初始化
:设置初始智能合约凭证,如数据访问控制策略,并启动私有区块链。
-
支付证明
:利用公共区块链的支付通道证明买家有足够资金支付产品。买家先将款项支付到托管账户,产品到货后资金再转给供应商。
在该模型中,物联网公司和银行发挥着重要作用。银行可借助物联网公司的跟踪能力和区块链的可追溯性,对企业进行信用评估和贷款决策。
以下是供应链交易流程的mermaid流程图:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(订单处理):::process --> B(发货):::process
B --> C(发票开具):::process
C --> D(支付):::process
E(智能合约初始化):::process --> A
F(支付证明):::process --> D
2.2 智能合约
比特币中的“脚本”是智能合约的弱版本,存在一些问题,如缺乏图灵完备性、价值盲、缺乏状态和区块链盲等。以太坊智能合约则构建了一个具有内置图灵完备编程语言的去中心化应用。
在供应链示例中,涉及两种智能合约:
-
公共区块链智能合约
:多个利益相关方提供供应链服务,确定PPP(公共参数和策略)。PPP定义了加密公共参数、可信方和安全策略,可作为构建私有区块链的模板。
-
私有区块链智能合约
:代表供应商和买家之间的一次采购交易,可能涉及物联网公司提供产品跟踪和库存管理。
2.3 ABE - 启用的基于属性的访问控制(ABAC)
ABE是实现基于属性的访问控制的一种方式,数据所有者可定义访问策略,只有拥有满足条件属性和相应私钥的用户才能解密数据。
与现有区块链数据隐私保护解决方案相比,该方案具有以下特点:
-
分布式和移动性
:系统中的每个参与者都可作为信任权威,为私有区块链参与者颁发属性和私钥。访问控制策略与密文关联,可在区块链利益相关者之间自由共享。
-
联合性
:属性可在私有区块链参与者之间共享,允许建立联盟生成属性和私钥,防止单点故障和n - 1勾结问题。
-
互操作性
:不同信任权威生成的属性和私钥可共同用于形成数据访问控制策略。
一个典型的安全策略示例:
P1 = 供应商和买家可以访问定价和数量信息。
在这个策略中,“定价”和“数量”是访问对象,“供应商”和“买家”是描述访问主体的属性,可作为公共加密密钥。
策略树(PT)是一种将策略表示为树结构的方式,叶子节点为属性,中间节点为逻辑门。通过秘密共享方案,树的根级秘密s可作为密钥加密密钥(KEK)保护对称密钥K(数据加密密钥DEK),进而保护数据。
以下是ABE - ABAC方案的主要算法:
-
全局参数设置
:
Global Parameters Setup(λ) → GP
GP = {N, g1, H : {0,1}∗ → G}
其中,N = p1p2p3,g1是Gp1的生成器,H是哈希函数。
-
权威设置
:
Authority Setup(GP) → MPK, MSK
MPKj = {e(g1, g1)^αi, g1^yi, ∀i}
MSKj = {αi, yi ∀i}
- 联合权威设置 :
Federated Authority Setup(GP, AAS) → ˆMPK, ˆMSK
ˆMPK = {e(g1, g1)^∑n j=1 αj, g1^∑n j=1 yj}
ˆMSK = {∑n j=1 αj, ∑n j=1 yj}
- 加密 :
Encrypt(M, (A, ρ), GP, {MPK}, ˆMPK) → CT
CT = <C0, C1,x, C2,x, C3,x>
- 密钥生成 :
KeyGen(GID, i, {MSK}, GP) → SKi,GID
SKi,GID = g1^αi H(GID)^yi
- 联合密钥生成 :
Federated KeyGen(GID, i, {MSK}, ˆMSK, GP) → SKi,GID
SKi,GID = g1^∑n j=1 αj H(GID)^∑n j=1 yj
- 解密 :
Decrypt(CT, {SKi,GID}, GP) → M
为减少移动设备的计算负担,部分加密和解密计算可外包给边缘节点。
以上就是该方案的上半部分内容,详细介绍了供应链区块链技术、智能合约和ABE - 启用的基于属性的访问控制等方面的内容。
基于属性加密和访问控制的区块链交易数据安全方案
3. 方案详细流程及关键算法分析
3.1 各算法详细步骤
为了更清晰地理解整个方案,下面对各个算法的详细步骤进行分析:
-
全局参数设置(Global Parameters Setup)
:
1. 由一个知名组织预先建立全局参数(GP),该组织在供应链行业等领域具有一定影响力。
2. 组织选择一个复合双线性群G,其阶为N = p1p2p3。
3. 确定GP的组成,即GP = {N, g1, H : {0,1}∗ → G},其中g1是群Gp1的生成器,哈希函数H将全局标识符映射到群G的元素。
4. 不同实体可能多次运行此算法,以生成多个候选全局参数。
-
权威设置(Authority Setup)
:
1. 每个区块链参与者都可作为信任权威进行密钥生成。
2. 基于全局参数GP,权威为其管理的每个属性Ai随机选择αi, yi ∈ ZN。
3. 发布主公共密钥MPKj = {e(g1, g1)^αi, g1^yi, ∀i}。
4. 保留主私有密钥MSKj = {αi, yi ∀i}。
-
联合权威设置(Federated Authority Setup)
:
1. 当多个属性权威需要为共享属性生成公钥和私钥时,运行此算法。
2. 假设存在n个属性权威,集合AAS = {AA1, AA2, ···, AAn},每个AAi生成αi, yi ∈ ZN和个体主私有密钥MSKi = {αi, yi∀i}。
3. AAi - 1将个体主公共密钥MPKi - 1→i = {e(g1, g1)^∑i j = 2 αj - 1, g1^∑i j = 2 yj - 1}发送给AAi。
4. AAi计算MPKi→i + 1 = (e(g1, g1)^∑i j = 2 αj - 1)^αi, (g1^∑i j = 2 yj - 1)^yi。
5. 最终确定联合主公共密钥ˆMPK = {e(g1, g1)^∑n j = 1 αj, g1^∑n j = 1 yj}和联合主私有密钥ˆMSK = {∑n j = 1 αj, ∑n j = 1 yj}。
-
加密(Encrypt)
:
1. 输入消息M、n × ℓ访问矩阵A、将矩阵行映射到属性的ρ、全局参数GP、主公共密钥集合{MPK}和联合主公共密钥ˆMPK。
2. 为矩阵A的每一行选择随机数rx ∈ ZN。
3. 随机选择向量w ∈ Z ℓ N,其第一个元素为0,计算ωx = Ax · ω。
4. 数据所有者随机选择s ∈ ZN和向量v ∈ Z ℓ N,s为v的第一个元素,计算λx = Ax · v。
5. 生成密文CT =
,其中C0 = Me(g1, g1)^s,C1,x = e(g1, g1)^λx e(g1, g1)^αρ(x)rx,C2,x = g1^rx,C3,x = g1^yρ(x)rx g1^ωx。
-
密钥生成(KeyGen)
:
1. 对于具有属性i且属于某个权威的全局标识符GID。
2. 权威生成私有密钥SKi,GID = g1^αi H(GID)^yi。
-
联合密钥生成(Federated KeyGen)
:
1. 当多个属性权威需要为多个用户共享的属性生成私钥时运行此算法。
2. 假设存在n个属性权威,集合AAS = {AA1, AA2, ···, AAn},每个AAi生成g1^αi H(GID)^yi。
3. AAi - 1将私钥组件SKi - 1→i = g1^∑i j = 2 αj - 1 H(GID)^∑i j = 2 yj - 1发送给AAi。
4. AAi计算SKi = (g1^∑i j = 2 αj - 1)^αi (H(GID)^∑i j = 2 yj - 1)^yi。
5. 最终得到用户GID共享属性的秘密密钥SKi,GID = g1^∑n j = 1 αj H(GID)^∑n j = 1 yj。
-
解密(Decrypt)
:
1. 假设密文是在访问矩阵(A, ρ)下加密的。
2. 如果解密者持有满足条件的私有密钥{SKρ(x),GID},即(1, 0, ···, 0)在这些密钥对应的矩阵行Ax的张成空间中。
3. 计算C1,x · e(H(GID), C3,x) / e(SKρ(x),GID, C2,x) = e(g1, g1)^λx e(H(GID), g1)^ωx。
4. 解密者选择常数cx ∈ ZN,使得∑x cxAx = (1, 0, ···, 0),并计算∏x (e(g1, g1)^λx e(H(GID), g1)^ωx)^cx = e(g1, g1)^s,从而得到明文消息M。
3.2 算法步骤对比表格
| 算法名称 | 输入 | 输出 | 主要步骤 |
|---|---|---|---|
| 全局参数设置 | λ | GP | 选择群G及相关参数,确定GP组成 |
| 权威设置 | GP | MPK, MSK | 选择随机数,发布MPK,保留MSK |
| 联合权威设置 | GP, AAS | ˆMPK, ˆMSK | 多个权威交互计算,确定联合密钥 |
| 加密 | M, (A, ρ), GP, {MPK}, ˆMPK | CT | 选择随机数和向量,生成密文 |
| 密钥生成 | GID, i, {MSK}, GP | SKi,GID | 权威生成私有密钥 |
| 联合密钥生成 | GID, i, {MSK}, ˆMSK, GP | SKi,GID | 多个权威交互生成联合私钥 |
| 解密 | CT, {SKi,GID}, GP | M | 验证条件,计算明文 |
4. 性能评估与优势总结
4.1 性能评估
在性能方面,该方案具有显著优势。由于采用了ABE技术,数据加密和解密过程更加灵活和安全。同时,通过将部分加密和解密计算外包给边缘节点,减轻了移动设备的计算负担,提高了系统的整体性能。特别是在供应链场景中,涉及大量的交易数据和频繁的交互,这种性能优化尤为重要。
例如,在订单处理阶段,智能合约可以快速处理订单信息,自动匹配相关文档,提高发票审批的速度和准确性。在发货过程中,IoT跟踪能力和智能合约的结合,确保了物料流和文件流的透明性和可追溯性,减少了人为错误和欺诈的可能性。
4.2 优势总结
- 数据隐私保护 :基于属性加密的方案确保只有具有相应属性和私钥的用户才能访问敏感数据,有效保护了数据的隐私。
- 分布式和联合性 :系统中的每个参与者都可作为信任权威,多个权威可以联合生成密钥,避免了单点故障和勾结问题,提高了系统的可靠性和安全性。
- 互操作性 :不同信任权威生成的属性和私钥可以共同使用,增强了系统的灵活性和可扩展性。
- 性能优化 :部分计算外包给边缘节点,减轻了移动设备的负担,提高了系统的响应速度和处理能力。
5. 总结
这个基于属性加密和访问控制的区块链交易数据安全方案为供应链等领域的区块链应用提供了一个全面的解决方案。通过智能合约和ABE技术的结合,实现了数据隐私保护、安全访问控制和高效的交易处理。各个算法的协同工作确保了系统的可靠性和安全性,同时性能优化措施也提高了系统的实用性。
在未来的区块链应用中,这种基于属性的加密和访问控制方案有望得到更广泛的应用,为更多行业的数字化转型提供有力支持。
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(全局参数设置):::process --> B(权威设置):::process
B --> C(联合权威设置):::process
C --> D(加密):::process
D --> E(密钥生成):::process
E --> F(联合密钥生成):::process
F --> G(解密):::process
以上流程图展示了整个方案从全局参数设置到最终解密的主要流程,各个环节紧密相连,共同构成了一个完整的区块链交易数据安全体系。
超级会员免费看
3184

被折叠的 条评论
为什么被折叠?



