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

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

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

相关文章

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

spring中的@MapperScan注解属性解析

《spring中的@MapperScan注解属性解析》@MapperScan是Spring集成MyBatis时自动扫描Mapper接口的注解,简化配置并支持多数据源,通过属性控制扫描路径和过滤条件,利... 目录一、核心功能与作用二、注解属性解析三、底层实现原理四、使用场景与最佳实践五、注意事项与常见问题六

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控