区块链物联网中基于属性的私有数据共享与脚本驱动的可编程密文和分散密钥管理

Attribute-Based Private Data Sharing With Script-Driven Programmable Ciphertext and Decentralized Key Management in Blockchain Internet of Things

区块链物联网中基于属性的私有数据共享与脚本驱动的可编程密文和分散密钥管理_第1张图片

密钥生成算法

第 1 步:对于属性集A=m个属性
的用户IDk,他首先将属性集A发送给Pi并且计算 抗碰撞哈希函数
,然后,用户计算身份的参数 并将其发送给Pi。

第 2 步:此步骤用于描述完整节点参数的生成。首先,对于每个属性 在这里插入图片描述
,节点Pi选择一个随机数在这里插入图片描述
。随后,Pi取一个随机数θi,通过使用Shamir (t, n)-阈值SSS(secret sharing scheme)在所有Pi之间共享它,如下所示。Pi随机选择t−1次多项式
在这里插入图片描述
使得 在这里插入图片描述
是某个有限域中的随机元素。最后,Pi 计算 n 个共享段 在这里插入图片描述
hi(pn) 并秘密地将 hi(pj) 分配给股东 Pj,其中 j ∈ [1, n]。当节点Pi从Pj接收到所有共享段hj(pi)时,它分别计算在这里插入图片描述

第3步:每个节点 Pi 使用其私钥 SKi 和步骤 1 和 2 创建的参数来计算用户私钥的片段信息。
对于主私钥的片段,Pi 计算
在这里插入图片描述
对于属性集 在这里插入图片描述
,Pi计算属性子键的片段为
区块链物联网中基于属性的私有数据共享与脚本驱动的可编程密文和分散密钥管理_第2张图片
最后,Pi发送在这里插入图片描述
到用户IDk。

在这一步中,通过使用拉格朗日插值公式,用户将根据接收到的密钥片段重建其主私钥和属性子密钥。我们定义拉格朗日系数为 在这里插入图片描述
在这里插入图片描述
对于主私钥,它进行重构
在这里插入图片描述
对于属性子键,用户进行重构
在这里插入图片描述
最后,让 在这里插入图片描述
并且用户通过如下方式获得他的私钥sk_k
在这里插入图片描述

你可能感兴趣的:(属性加密,区块链,服务器,运维)