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

本文主要是介绍区块链物联网中基于属性的私有数据共享与脚本驱动的可编程密文和分散密钥管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

在这里插入图片描述

密钥生成算法

第 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计算属性子键的片段为
在这里插入图片描述
最后,Pi发送在这里插入图片描述
到用户IDk。

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

这篇关于区块链物联网中基于属性的私有数据共享与脚本驱动的可编程密文和分散密钥管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/289687

相关文章

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

Java 单元测试之Mockito 模拟静态方法与私有方法最佳实践

《Java单元测试之Mockito模拟静态方法与私有方法最佳实践》本文将深入探讨如何使用Mockito来模拟静态方法和私有方法,结合大量实战代码示例,带你突破传统单元测试的边界,写出更彻底、更独立... 目录Mockito 简介:为什么选择它?环境准备模拟静态方法:打破“不可变”的枷锁传统困境解法一:使用M

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象