一种区块链协助搜索的物联网数据共享方法
摘要文本
本发明公开了一种区块链协助搜索的物联网数据共享方法,属于信息安全技术领域,本发明要解决的技术问题为如何保证物联网数据的机密性、可搜索性和灵活的访问控制,采用的技术方案为:S1、可信权威机构、属性管理机构、数据所有者和数据使用者进行初始化操作:可信权威机构生成公共参数,各个属性管理机构生成各自的属性管理公钥和属性管理私钥,数据所有者和数据使用者生成各自的公钥和私钥,并向区块链协助搜索的物联网数据共享系统成员公开公共参数、属性管理公钥、数据所有者和数据使用者公钥;S2、物联网数据上传;S3、物联网数据检索;S4、物联网数据解密。
申请人信息
- 申请人:齐鲁工业大学(山东省科学院)
- 申请人地址:250000 山东省济南市长清区大学路3501号
- 发明人: 齐鲁工业大学(山东省科学院)
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种区块链协助搜索的物联网数据共享方法 |
| 专利类型 | 发明授权 |
| 申请号 | CN202410004222.4 |
| 申请日 | 2024/1/3 |
| 公告号 | CN117494221B |
| 公开日 | 2024/4/2 |
| IPC主分类号 | G06F21/62 |
| 权利人 | 齐鲁工业大学(山东省科学院) |
| 发明人 | 禹继国; 黄耀; 王桂娟; 卢之琰; 董安明 |
| 地址 | 山东省济南市长清区大学路3501号 |
专利主权项内容
。1.一种区块链协助搜索的物联网数据共享方法,其特征在于,该方法具体如下:S1、可信权威机构、属性管理机构、数据所有者和数据使用者进行初始化操作:可信权威机构生成公共参数,各个属性管理机构生成各自的属性管理公钥/>和属性管理私钥/>,数据所有者和数据使用者生成各自的公钥/>和私钥,并向区块链协助搜索的物联网数据共享系统成员公开公共参数、属性管理公钥、数据所有者和数据使用者公钥;具体如下:S101、可信权威机构执行初始化操作:定义两个阶数为素数的乘法循环群/>,并定义一个整数群/>;再选择双线性映射/> 和三个哈希函数/>;可信权威机构从/>群中选择一个随机数/>并将公共参数组织为 : ;其中,是乘法循环群/>的生成元;/>代指双线性映射;/>是根据随机数/>计算的一个公共参数的元素;/>表示一个将关键字映射为/>群元素的哈希函数;/>表示一个将身份标识符/>映射为/>群元素的哈希函数;/>表示一个将属性映射为/>群元素的哈希函数;其中,选定的乘法循环群和双线性映射满足以下三个条件:①双线性:对于任意的群元素:,/>,有/>和/>或/>;②非退化性:设是/>的生成元,有/>;③可计算性:对于任意的群元素:,存在有效的方法计算一个双线性映射;S102、各个属性管理机构分别从群中选择两个随机数/>,/>作为属性管理私钥/>,并计算属性管理公钥/>;其中,是两个随机数,用于构成属性管理私钥/>,属性管理公钥/>根据属性管理私钥和群/>的生成元计算得来;S103、数据所有者和数据使用者分别从群中选择随机数/>,/>分别作为数据所有者和数据使用者的私钥/>,并分别计算数据所有者和数据使用者的公钥/>;其中,数据所有者和数据使用者各自的公钥是根据私钥和群的生成元计算;/>表示数据所有者的私钥;/>表示数据使用者的私钥;/>表示数据所有者的公钥;表示数据使用者的公钥;S2、物联网数据上传:数据所有者根据预定义的数据访问结构将物联网数据加密生成物联网数据密文并从物联网数据中抽取一组能够描述对应数据的关键字生成数据索引/>;数据所有者将物联网数据密文上传到云计算中心,将数据索引上传到区块链;S3、物联网数据检索:数据使用者根据自己感兴趣的关键字集合生成搜索陷门/>并将搜索陷门发送到区块链,区块链智能合约根据数据索引和搜索陷门执行搜索操作;当搜索成功时,返回物联网数据密文的云上存储地址;具体如下:S301、数据使用者根据自身感兴趣的关键字集合并从/>群中选择一个随机数/>计算搜索陷门的各个组件如下:
;
;
;根据搜索陷门的各个组件、/>和/>,数据使用者将搜索陷门组织为:;其中,表示数据使用者感兴趣的关键字集合;/>表示关键字;/>表示数据使用者感兴趣的关键字集合中关键字的个数;S302、数据使用者将搜索陷门上传到区块链上,部署在区块链上的智能合约验证数据索引和搜索陷门是否匹配,验证公式如下:
;若成立,则表明数据索引和搜索陷门匹配成功,区块链将物联网数据密文的云上存储地址返回给数据使用者;其中,验证数据索引和搜索陷门是否匹配的过程在区块链上利用智能合约执行;S4、物联网数据解密:各个属性管理机构根据数据使用者的属性集合为数据使用者生成属性解密密钥,云计算中心根据数据使用者的属性解密密钥为数据使用者提供预解密操作生成中间密文/>,数据使用者利用自己的私钥解密中间密文最终获得数据使用者感兴趣的物联网数据;其中,云计算中心执行预解密和数据使用者解密中间密文具体如下:S401、各个属性管理机构根据数据使用者的属性集合为数据使用者生成属性解密密钥/>;对于数据使用者的属性集合/>中的一个属性/>,属性管理机构从群中选择一个随机数/>并结合数据使用者的公钥/>计算属性解密密钥的各个组件,具体如下:
;
;根据属性解密密钥的各个组件和/>,属性管理机构将数据使用者的属性解密密钥组织为:/>;其中,是由任一个属性管理机构具体管理的属性集合,任一个属性管理机构具体管理的属性集合/>和数据使用者的属性集合/>的关系是:/>;S402、云计算中心利用数据使用者的属性解密密钥为数据使用者提供物联网数据密文预解密操作;云计算中心定义满足数据访问结构的属性集合为,对于集合/>中的每个元素/>,云计算中心计算一组中间变量、/>、/>及/>,公式如下:
;
;
;
;云计算中心根据中间变量、/>、/>及/>计算中间密文变量/>,公式如下:
;云计算中心计算一组常数,使得等式/>和等式/>成立,即利用常数/>恢复出/>和/>;结合常数,云计算中心执行如下的计算获取中间密文的组件/>:
;根据中间密文的组件云计算中心将中间密文组织为:;其中,/>是物联网数据密文/>的一个组件;S403、数据使用者解密中间密文:数据使用者利用数据使用者私钥 执行如下计算解密中间密文获得物联网数据/>:
。