CN116663046A - 基于区块链的隐私数据共享和检索方法、系统及设备 - Google Patents
基于区块链的隐私数据共享和检索方法、系统及设备 Download PDFInfo
- Publication number
- CN116663046A CN116663046A CN202310423161.0A CN202310423161A CN116663046A CN 116663046 A CN116663046 A CN 116663046A CN 202310423161 A CN202310423161 A CN 202310423161A CN 116663046 A CN116663046 A CN 116663046A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- data
- index
- index item
- retrieval
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 4
- SLXKOJJOQWFEFD-UHFFFAOYSA-N 6-aminohexanoic acid Chemical compound NCCCCCC(O)=O SLXKOJJOQWFEFD-UHFFFAOYSA-N 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 6
- 230000007246 mechanism Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000013475 authorization Methods 0.000 description 9
- 230000006978 adaptation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书公开一种基于区块链的隐私数据共享和检索方法、系统及设备,该方法,以区块链为基础,设计了保护隐私的属性基可搜索加密方案,在数据共享时,由智能合约提取关键词并嵌入访问树定义的检索策略生成索引项密文,对数据的加密过程也嵌入访问树;在数据检索时,由智能合约根据检索的关键词信息和用户属性生成陷门,将陷门中的属性与索引项中的策略进行匹配进而检索。通过数据加密保证隐私数据安全,采用可搜索加密机制使得密文数据可以执行关键词检索操作,从而在多共享者场景中实现了数据共享、隐私保护以及关键词检索的功能。
Description
技术领域
本发明涉及隐私计算技术领域,具体而言,涉及一种基于区块链的隐私数据共享和检索方法、系统及设备。
背景技术
区块链作为一种重要的数据共享手段逐渐普及,数据共享就难免涉及到个人或企业的隐私数据。隐私数据包括个人信息、医疗数据、金融交易数据等,隐私数据泄露的危害较为严重。
在现有的隐私保护技术方案中,很大一部分需要先将数据加密,共享时传输数据的密文,数据使用时需要先将密文解密,这样就导致数据的检索变得困难。在现有的可搜索加密方案中,主要有基于区块链利用云服务器存储数据密文,将区块链作为可信存储,用以存储索引等数据,区块链在此类场景中主要的应用是存储索引、执行检索和结果验证,此类密文数据检索方案的主要不足是不兼容细粒度的隐私保护策略,缺乏对多共享者场景的检索授权适配。
因此,亟待研究一个在多共享者场景中、支持数据的共享、隐私保护和检索功能的技术。
发明内容
本说明书提供一种基于区块链的隐私数据共享和检索方法、系统及设备,用以克服相关技术中存在的至少一个技术问题。
根据本说明书实施例的第一方面,提供一种基于区块链的隐私数据共享和检索方法,包括:
将获取的安全系数输入系统初始化函数进行初始化,得到公共参数和主密钥,当新用户加入时,根据用户输入的属性集和所述主密钥计算生成用户密钥。
当用户进行数据共享时,将共享者的共享数据和访问策略树提交给区块链智能合约,由智能合约按照预先设定的规则提取共享数据中的关键词,根据所述关键词、所述访问策略树以及共享数据中的交易id生成对应的索引项密文,将该索引项密文加入智能合约的索引项密文列表中,根据访问策略树和所述公共参数将共享数据进行加密得到密文,将该索引项密文和该密文上传到区块链账本中,所述访问策略树的叶节点设置有属性值,通过访问策略树的结构对可访问共享数据和可检索共享数据的用户属性进行限制。
当用户申请数据检索时,获取检索者的关键词信息和用户密钥并提交给智能合约,由智能合约根据关键词信息以及用户密钥中的属性集生成检索陷门,将检索陷门返回给检索者。
当用户进行数据检索时,接收检索者向智能合约提交的检索陷门,由智能合约将所接收的检索陷门在索引项密文列表中进行匹配,若该检索陷门中的属性集与索引项密文匹配成功,则将对应的索引项密文返回给检索者,由检索者在本地以用户密钥解密该索引项密文,根据该索引项密文解密得到交易id的明文,由检索者向智能合约请求交易id对应的交易数据,由智能合约向区块链账本请求对应的交易数据并返回给检索者。
可选的,所述的将获取的安全系数输入系统初始化函数进行初始化,得到公共参数和主密钥,当新用户加入时,根据用户输入的属性集和所述主密钥计算生成用户密钥的步骤,包括:
选取双线性群建立双线性映射,令G为阶为λ位素数p的双线性群,g为G的生成元;e:G×G→GT为双线性映射;
选择三个随机数为安全参数;
定义H1:{0,1}*→G为第一哈希函数,为第二哈希函数,则有:
其中,PM表示数据检索的公共参数,MK表示数据检索的主密钥,PM′表示数据加密的公共参数,MK′表示数据加密的主密钥;
根据输入的属性集Atts和主密钥MK,选取随机数令A=g(ac-r)/b,对属性集Atts中的每个属性atj∈Atts,分别选取随机数/>并计算/>令则有:
SK=(Atts,ga,{(Aj,Bj)|atj∈Atts})
其中,SK为用户密钥。
可选的,所述的根据所述关键词、所述访问策略树以及所述公共参数生成对应的索引项密文的步骤,包括:
关键词W、访问策略树和共享数据中的交易id,选择两个随机数/>计算:
设x为访问策略树上的节点,为每一个节点x生成多项式qx,定义如下四个函数:parent(x)表示节点x的父节点,att(x)表示访问策略树叶节点对应的属性值,index(x)表示节点在访问策略树上对应的索引值,qx(0)=qparent(index(x)),设访问策略树根节点为root,设置qroot(0)=r2,令Y表示访问策略树/>的叶节点,则有
其中,CW为索引项密文。
可选的,所述的根据访问策略树和所述公共参数将共享数据进行加密得到密文的步骤,包括:
设x为访问策略树上的节点,为每一个节点x生成多项式qx,定义如下四个函数:parent(x)表示节点x的父节点,att(x)表示访问策略树叶节点对应的属性值,index(x)表示节点在访问策略树上对应的索引值,qx(0)=qparent(index(x)),设访问策略树根节点为R,选择随机数/>设置qR(0)=s,令Y表示访问策略树/>的叶节点,则有
其中,CT为密文。
可选的,所述的由智能合约根据关键词信息以及用户密钥中的属性集生成检索陷门,将检索陷门返回给检索者的步骤,包括:
选择随机数计算:
tok2=gcs,tok3=As=g(acs-rs)/b;
对属性集Atts中的每个属性atj∈Atts,计算A′j=Aj s,令B′j=Bj s,则有:
TW=(Atts,tok1,tok2,tok3,{(A′j,B′j)|atj∈Atts})
其中,TW为检索陷门。
可选的,所述的由智能合约将所接收的检索陷门在索引项密文列表中进行匹配的步骤,包括:
根据接收的检索陷门TW′,提取检索陷门TW′中的属性集Atts,对于索引项密文列表中的索引项密文CW,选择满足索引项密文CW中的访问策略树的属性集合S,若S不存在则说明没有检索权限,检索返回0;若存在S满足索引项密文中的访问策略树/>对于S中的每个属性atj,计算:
Y表示访问策略树的叶节点,对于att(y)∈S,计算访问策略树根节点的则检索结果为:
其中,b=1表示匹配成功,b=0表示匹配未成功。
可选的,所述的由检索者在本地以用户密钥解密该索引项密文,根据该索引项密文解密得到交易id的明文的步骤,包括:
使用递归函数DecryptNode(CT,SK,x),设用户密钥SK对应的属性集为S,当x为访问策略树的叶结点,令i=att(x),如果i∈S,则:
当x不是访问策略树的叶结点时,以孩子结点为输入递归调用DecryptNode()函数,令:
则明文M为:
可选的,所述的将该索引项密文和该密文上传到区块链账本中的步骤,还包括:
在索引项密文CW前端插入索引头,索引头定义为{key,next,nextItem}三元组,其中key为索引头的密文,next为下一索引头的指针,nextItem为索引头对应的交易id列表的指针。
根据本说明书实施例的第二方面,提供一种基于区块链的隐私数据共享和检索系统,包括初始化模块、数据共享模块、陷门生成模块以及检索模块,其中
所述初始化模块,被配置为将获取的安全系数输入系统初始化函数进行初始化,得到公共参数和主密钥,当新用户加入时,根据用户输入的属性集和所述主密钥计算生成用户密钥;
所述数据共享模块,被配置为当用户进行数据共享时,将共享者的共享数据和访问策略树提交给区块链智能合约,由智能合约按照预先设定的规则提取共享数据中的关键词,根据所述关键词、所述访问策略树以及共享数据中的交易id生成对应的索引项密文,将该索引项密文加入智能合约的索引项密文列表中,根据访问策略树和所述公共参数将共享数据进行加密得到密文,将该索引项密文和该密文上传到区块链账本中,所述访问策略树的叶节点设置有属性值,通过访问策略树的结构对可访问共享数据的用户属性进行限制;
所述陷门生成模块,被配置为当用户申请数据检索时,获取检索者的关键词信息和用户密钥并提交给智能合约,由智能合约根据关键词信息以及用户密钥中的属性集生成检索陷门,将检索陷门返回给检索者;
所述检索模块,被配置为当用户进行数据检索时,接收检索者向智能合约提交的检索陷门,由智能合约将所接收的检索陷门在索引项密文列表中进行匹配,若该检索陷门中的属性集与索引项密文匹配成功,则将对应的索引项密文返回给检索者,由检索者在本地以用户密钥解密该索引项密文,根据该索引项密文解密得到交易id的明文,由检索者向智能合约请求交易id对应的交易数据,由智能合约向区块链账本请求对应的交易数据并返回给检索者。
根据本说明书实施例的第三方面,提供一种计算设备,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述计算设备执行所述的基于区块链的隐私数据共享和检索方法的步骤。
本说明书实施例的有益效果如下:
本说明书实施例,提供一种基于区块链的隐私数据共享和检索方法、系统及设备,该方法采用了保护隐私的属性基可搜索加密,以区块链为基础,智能合约在共享数据中嵌入访问树,控制只有拥有符合访问策略属性的用户密钥的检索者才能够成功解密密文。在关键词索引中也嵌入了访问树,控制只有拥有符合检索策略属性的陷门才能够成功进行检索,从而通过不同用户的属性集的不同来限制解密和检索的权限。与现有技术相比,本说明书实施例,利用区块链上数据公开透明的优点实现数据共享,通过数据加密保证隐私数据安全,采用可搜索加密机制使得密文数据可以执行关键词检索操作,从而实现数据的隐私保护和检索功能的兼顾,并且通过访问树的结构对不同用户的属性进行区分,基于索引和访问树实现了对多共享者场景的适配。
本说明书实施例的创新点包括:
1、本说明书中,设计的保护隐私的属性基可搜索加密方案,智能合约在共享数据中嵌入数据访问策略的访问树,控制只有拥有符合访问策略属性的用户密钥的检索者才能够成功解密密文,从而实现了隐私保护,是本说明书实施例的创新点之一。
2、本说明书中,设计的保护隐私的属性基可搜索加密方案,智能合约通过关键词生成索引项密文,在索引中嵌入了访问树,控制只有拥有符合属性的陷门才能够成功进行检索,实现了检索功能,是本说明书实施例的创新点之一。
3、本说明书中,基于区块链的隐私数据共享和检索方法,通过在索引和陷门中嵌入访问树,不仅实现数据的隐私保护和检索功能的兼顾,而且实现了支持多共享者的统一授权模式,是本说明书实施例的创新点之一。
附图说明
为了更清楚地说明本说明书实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一实施例提供的基于区块链的隐私数据共享和检索方法的流程示意图;
图2为本说明书一实施例提供的保护隐私的可搜索加密的示意图;
图3为本说明书一实施例提供的保护隐私的可搜索加密构造示意图;
图4为本说明书一实施例提供的数据索引结构示意图;
图5为本说明书一实施例提供的索引匹配流程示意图;
图6为本说明书一实施例提供的基于区块链的隐私数据共享和检索系统的结构示意图;
图7为本说明书一实施例提供的计算设备的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本说明书实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本说明书实施例公开了一种基于区块链的隐私数据共享和检索方法、系统及设备,其中该方法采用了保护隐私的属性基可搜索加密,基于属性基加密和可搜索加密两种密码学原语结合而成,结合了属性基加密多把密钥可解密同一段密文以及可搜索加密的数据检索和数据隐私保护存储解耦的优点。以下分别进行详细说明。
本说明书实施例中的保护隐私的属性基可搜索加密方案的整体构思由系统初始化Setup、用户密钥生成函数KeyGen、索引生成函数BuildIndex、检索陷门生成函数Trap、检索函数Search、数据加密函数Encrypt、数据解密函数Decrypt七个函数组成。系统初始化函数输入安全系数λ,输出公共参数PM和主密钥MK。用户密钥生成函数输入主密钥MK和属性集γ,输出用户密钥SK。索引生成函数输入关键词W,访问策略和公共参数PM输出索引项密文CW。检索陷门生成函数输入用户密钥SK和关键词W,输出检索陷门TW。检索函数输入索引项密文CW和陷门TW′,输出搜索结果b。数据加密函数输入待加密信息M、访问策略/>和公共参数PM,输出加密后的密文CT。数据解密函数输入密文E和用户密钥SK,输出解密后的原数据M。只有密钥中的属性满足密文中的策略,即/>时才能解密成功。利用上述七个函数可实现保护隐私的属性基可搜索加密,实现细粒度隐私保护策略中对数据检索的支持。具体实现的步骤如下。
图1为本说明书一实施例提供的基于区块链的隐私数据共享和检索方法的流程示意图。如图1所示,一种基于区块链的隐私数据共享和检索方法,包括:
S110、将获取的安全系数输入系统初始化函数进行初始化,得到公共参数和主密钥,当新用户加入时,根据用户输入的属性集和所述主密钥计算生成用户密钥。
在具体实施例中,所述的S110、将获取的安全系数输入系统初始化函数进行初始化,得到公共参数和主密钥,当新用户加入时,根据用户输入的属性集和所述主密钥计算生成用户密钥的步骤,包括:
选取双线性群建立双线性映射,令G为阶为λ位素数p的双线性群,g为G的生成元;e:G×G→GT为双线性映射;
选择三个随机数为安全参数;
定义H1:{0,1}*→G为第一哈希函数,为第二哈希函数,则有:
其中,PM表示数据检索的公共参数,MK表示数据检索的主密钥,PM′表示数据加密的公共参数,MK′表示数据加密的主密钥;
根据输入的属性集Atts和主密钥MK,选取随机数令A=g(ac-r)/b,对属性集Atts中的每个属性atj∈Atts,分别选取随机数/>并计算/>令则有:
SK=(Atts,ga,{(Aj,Bj)|atj∈Atts})
其中,SK为用户密钥。
图2为本说明书一实施例提供的保护隐私的可搜索加密的示意图。如图2所示,本说明书的基于区块链的保护隐私的数据共享和检索方法中,主要有四种角色组成,分别是数据共享者201、数据检索者202、区块链智能合约203和区块链账本204。数据共享者将共享数据和数据访问策略、数据检索策略提交给智能合约进行数据共享,数据访问策略和数据检索策略通过访问策略树的形式提交给智能合约。智能合约按照预先设定的规则提取共享数据中的关键词并生成索引项密文,将共享数据和索引项密文加密后上传到区块链账本中。数据检索者向智能合约提交关键词信息并发起检索授权请求,智能合约完成检索陷门的生成,并将陷门返回给检索者。检索者将陷门提交给智能合约请求数据检索,智能合约验证检索者的数据检索权限和数据访问权限,在索引项密文列表中进行匹配,将匹配成功的索引项密文返回数据检索者。数据检索者在本地解密数据索引项,并向智能合约请求索引项对应的交易数据,即为包含检索关键词的所有交易数据。
图3为本说明书一实施例提供的保护隐私的可搜索加密构造示意图。如图3所示,智能合约在共享数据中嵌入数据访问策略的访问树,控制只有拥有符合访问策略属性的用户密钥的检索者才能够成功解密密文。在关键词索引中嵌入了检索策略访问树,控制只有拥有符合检索策略属性的陷门才能够成功进行检索。陷门在智能合约中生成后发送给数据检索者,由检索者在检索时提供陷门,智能合约完成陷门和索引项的匹配。
S120、当用户进行数据共享时,将共享者的共享数据和访问策略树提交给区块链智能合约,由智能合约按照预先设定的规则提取共享数据中的关键词,根据所述关键词、所述访问策略树以及共享数据中的交易id生成对应的索引项密文,将该索引项密文加入智能合约的索引项密文列表中,根据访问策略树和所述公共参数将共享数据进行加密得到密文,将该索引项密文和该密文上传到区块链账本中,所述访问策略树的叶节点设置有属性值,通过访问策略树的结构对可访问共享数据和可检索共享数据的用户属性进行限制。
在具体实施时,所述的根据所述关键词、所述访问策略树以及所述公共参数生成对应的索引项密文的步骤,包括:
关键词W、访问策略树和共享数据中的交易id,选择两个随机数/>计算:
设x为访问策略树上的节点,为每一个节点x生成多项式qx,定义如下四个函数:parent(x)表示节点x的父节点,att(x)表示访问策略树叶节点对应的属性值,index(x)表示节点在访问策略树上对应的索引值,qx(0)=qparent(index(x)),设访问策略树根节点为root,设置qroot(0)=r2,令Y表示访问策略树/>的叶节点,则有
其中,CW为索引项密文。
所述的根据访问策略树和所述公共参数将共享数据进行加密得到密文的步骤,包括:
设x为访问策略树上的节点,为每一个节点x生成多项式qx,定义如下四个函数:parent(x)表示节点x的父节点,att(x)表示访问策略树叶节点对应的属性值,index(x)表示节点在访问策略树上对应的索引值,qx(0)=qparebt(index(x)),设访问策略树根节点为R,选择随机数/>设置qR(0)=s,令Y表示访问策略树/>的叶节点,则有
其中,CT为密文。
在具体实施时,所述的将该索引项密文和该密文上传到区块链账本中的步骤,还包括:
在索引项密文CW前端插入索引头,索引头定义为{key,next,nextItem}三元组,其中key为索引头的密文,next为下一索引头的指针,nextItem为索引头对应的交易id列表的指针。
图4为本说明书一实施例提供的数据索引结构示意图。本说明书实施例针对的数据共享模型为多共享者模型,而不同的共享者对不同数据对象的检索策略不同,因而设计了基于索引的检索授权管理来统一管理检索授权。由智能合约维护一张全局的倒排索引表。数据共享者不需要维护每个检索者的授权,只需要在数据上链时指定检索策略,指定哪些属性的人能够访问即可。主要方案是对索引进行改造,索引的结构如图4所示。智能合约首先将交易id加密得到索引项402CW,提取共享数据中的关键词,在索引表中查询到各个关键词对应的索引头401,在索引头401后插入索引项402cW。索引头401为关键词索引,其中嵌入了关键词作为策略,只有属性中也包含同样关键词的陷门才能够与索引项402完成匹配。每个索引项402都是将交易id进行属性基加密得到的密文,对索引项402加密时嵌入了检索策略。
因为区块链上每天都会新增大量的交易,随着链上数据的增加,关键词也会不断增加,每个关键词对应的交易id列表也会增加。因此选择便于增删的链式存储。
S130、当用户申请数据检索时,获取检索者的关键词信息和用户密钥并提交给智能合约,由智能合约根据关键词信息以及用户密钥中的属性集生成检索陷门,将检索陷门返回给检索者。
在具体实施例中,所述的由智能合约根据关键词信息以及用户密钥中的属性集生成检索陷门,将检索陷门返回给检索者的步骤,包括:
选择随机数计算:
tok2=gcs,tok3=As=g(acs-rs)/b;
对属性集Atts中的每个属性atj∈Atts,计算A′j=Aj s,令B′j=Bj s,则有:
TW=(Atts,tok1,tok2,tok3,{(A′j,B′j)|atj∈Atts})
其中,TW为检索陷门。
S140、当用户进行数据检索时,接收检索者向智能合约提交的检索陷门,由智能合约将所接收的检索陷门在索引项密文列表中进行匹配,若该检索陷门中的属性集与索引项密文匹配成功,则将对应的索引项密文返回给检索者,由检索者在本地以用户密钥解密该索引项密文,根据该索引项密文解密得到交易id的明文,由检索者向智能合约请求交易id对应的交易数据,由智能合约向区块链账本请求对应的交易数据并返回给检索者。
本说明书中的检索方法采用保护隐私的属性基可搜索加密方案,对索引采用属性基加密,限制只有属性符合检索策略的检索者才能够检索,只有属性符合访问策略的检索者才能够访问共享数据。基于索引实现了支持多共享者的统一授权模式,检索者申请陷门时智能合约嵌入检索关键词自动生成陷门。
具体实施例中,所述的由智能合约将所接收的检索陷门在索引项密文列表中进行匹配的步骤,包括:
根据接收的检索陷门TW′,提取检索陷门TW′中的属性集Atts,对于索引项密文列表中的索引项密文CW,选择满足索引项密文CW中的访问策略树的属性集合S,若S不存在则说明没有检索权限,检索返回0;若存在S满足索引项密文中的访问策略树/>对于S中的每个属性atj,计算:
Y表示访问策略树的叶节点,对于att(y)∈S,计算访问策略树根节点的则检索结果为:
其中,b=1表示匹配成功,b=0表示匹配未成功。
判断检索陷门中的关键词属性与索引头中嵌入的关键词策略是否一致,b=1则说明匹配成功,此索引头对应的交易id列表即为包含检索目标关键词的交易id列表。
匹配成功后,依次遍历索引头对应的交易id密文列表,如果关键词陷门能够和索引项匹配,则检索者可以访问索引项对应的交易id,需要检索者将索引项密文下载到本地,在本地使用私钥解密索引项获得交易id的明文,再根据交易id去链上查询对应的交易数据并解密得到目标数据。
具体的,所述的由检索者在本地以用户密钥解密该索引项密文,根据该索引项密文解密得到交易id的明文的步骤,包括:
使用递归函数DecryptNode(CT,SK,x),设用户密钥SK对应的属性集为S,当x为访问策略树的叶结点,令i=att(x),如果i∈S,则:
当x不是访问策略树的叶结点时,以孩子结点为输入递归调用DecryptNode()函数,令:
则明文M为:
图5为本说明书一实施例提供的索引匹配流程示意图。如图5所示,如果检索者的陷门匹配了索引项,就将索引项密文数据下载到本地进行解密,获得交易id,如果检索者的陷门不能和索引项匹配,说明无检索权限,无法获得交易id。
采用对索引属性基加密的方式完成了自动的检索授权,将授权过程由向共享者请求陷门转变成了陷门中的检索者属性和索引项密文中的访问策略的匹配,匹配成功则说明有权限检索,不成功则说明没有权限检索。
图6为本说明书一实施例提供的基于区块链的隐私数据共享和检索系统的结构示意图。如图6所示,一种基于区块链的隐私数据共享和检索系统600,包括初始化模块610、数据共享模块620、陷门生成模块630以及检索模块640,其中
所述初始化模块610,被配置为将获取的安全系数输入系统初始化函数进行初始化,得到公共参数和主密钥,当新用户加入时,根据用户输入的属性集和所述主密钥计算生成用户密钥。
所述数据共享模块620,被配置为当用户进行数据共享时,将共享者的共享数据和访问策略树提交给区块链智能合约,由智能合约按照预先设定的规则提取共享数据中的关键词,根据所述关键词、所述访问策略树以及共享数据中的交易id生成对应的索引项密文,将该索引项密文加入智能合约的索引项密文列表中,根据访问策略树和所述公共参数将共享数据进行加密得到密文,将该索引项密文和该密文上传到区块链账本中,所述访问策略树的叶节点设置有属性值,通过访问策略树的结构对可访问共享数据的用户属性进行限制。
所述陷门生成模块630,被配置为当用户申请数据检索时,获取检索者的关键词信息和用户密钥并提交给智能合约,由智能合约根据关键词信息以及用户密钥中的属性集生成检索陷门,将检索陷门返回给检索者。
所述检索模块640,被配置为当用户进行数据检索时,接收检索者向智能合约提交的检索陷门,由智能合约将所接收的检索陷门在索引项密文列表中进行匹配,若该检索陷门中的属性集与索引项密文匹配成功,则将对应的索引项密文返回给检索者,由检索者在本地以用户密钥解密该索引项密文,根据该索引项密文解密得到交易id的明文,由检索者向智能合约请求交易id对应的交易数据,由智能合约向区块链账本请求对应的交易数据并返回给检索者。
图7为本说明书一实施例提供的计算设备的结构示意图。如图7所示,一种计算设备700,包括存储设备710以及处理器720,所述存储设备710用于存储计算机程序,所述处理器720运行所述计算机程序以使所述计算设备700执行所述的基于区块链的隐私数据共享和检索方法的步骤。
综上所述,本说明书实施例提供一种基于区块链的隐私数据共享和检索方法、系统及设备,基于区块链实现数据共享,通过数据加密保证隐私数据安全,采用可搜索加密机制使得密文数据可以执行关键词检索操作,从而实现了数据的隐私保护和检索功能的兼顾。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (10)
1.一种基于区块链的隐私数据共享和检索方法,其特征在于,包括:
将获取的安全系数输入系统初始化函数进行初始化,得到公共参数和主密钥,当新用户加入时,根据用户输入的属性集和所述主密钥计算生成用户密钥;
当用户进行数据共享时,将共享者的共享数据和访问策略树提交给区块链智能合约,由智能合约按照预先设定的规则提取共享数据中的关键词,根据所述关键词、所述访问策略树以及共享数据中的交易id生成对应的索引项密文,将该索引项密文加入智能合约的索引项密文列表中,根据访问策略树和所述公共参数将共享数据进行加密得到密文,将该索引项密文和该密文上传到区块链账本中,所述访问策略树的叶节点设置有属性值,通过访问策略树的结构对可访问共享数据和可检索共享数据的用户属性进行限制;
当用户申请数据检索时,获取检索者的关键词信息和用户密钥并提交给智能合约,由智能合约根据关键词信息以及用户密钥中的属性集生成检索陷门,将检索陷门返回给检索者;
当用户进行数据检索时,接收检索者向智能合约提交的检索陷门,由智能合约将所接收的检索陷门在索引项密文列表中进行匹配,若该检索陷门中的属性集与索引项密文匹配成功,则将对应的索引项密文返回给检索者,由检索者在本地以用户密钥解密该索引项密文,根据该索引项密文解密得到交易id的明文,由检索者向智能合约请求交易id对应的交易数据,由智能合约向区块链账本请求对应的交易数据并返回给检索者。
2.根据权利要求1所述的方法,其特征在于,所述的将获取的安全系数输入系统初始化函数进行初始化,得到公共参数和主密钥,当新用户加入时,根据用户输入的属性集和所述主密钥计算生成用户密钥的步骤,包括:
选取双线性群建立双线性映射,令G为阶为λ位素数p的双线性群,g为G的生成元;e:G×G→GT为双线性映射;
选择三个随机数为安全参数;
定义H1:{0,1}*→G为第一哈希函数,为第二哈希函数,则有:
其中,PM表示数据检索的公共参数,MK表示数据检索的主密钥,PM′表示数据加密的公共参数,MK′表示数据加密的主密钥;
根据输入的属性集Atts和主密钥MK,选取随机数令A=g(ac-r)/b,对属性集Atts中的每个属性atj∈Atts,分别选取随机数/>并计算/>令则有:
其中,SK为用户密钥。
3.根据权利要求1所述的方法,其特征在于,所述的根据所述关键词、所述访问策略树以及所述公共参数生成对应的索引项密文的步骤,包括:
关键词W、访问策略树和共享数据中的交易id,选择两个随机数/>计算:
设x为访问策略树上的节点,为每一个节点x生成多项式qx,定义如下四个函数:parent(x)表示节点x的父节点,att(x)表示访问策略树叶节点对应的属性值,index(x)表示节点在访问策略树上对应的索引值,qx(0)=qparent(index(x)),设访问策略树根节点为root,设置qroot(0)=r2,令Y表示访问策略树/>的叶节点,则有
其中,CW为索引项密文。
4.根据权利要求1所述的方法,其特征在于,所述的根据访问策略树和所述公共参数将共享数据进行加密得到密文的步骤,包括:
设x为访问策略树上的节点,为每一个节点x生成多项式qx,定义如下四个函数:parent(x)表示节点x的父节点,att(x)表示访问策略树叶节点对应的属性值,index(x)表示节点在访问策略树上对应的索引值,qx(0)=qparent(index(x)),设访问策略树根节点为R,选择随机数/>设置qR(0)=s,令Y表示访问策略树/>的叶节点,则有
其中,CT为密文。
5.根据权利要求1所述的方法,其特征在于,所述的由智能合约根据关键词信息以及用户密钥中的属性集生成检索陷门,将检索陷门返回给检索者的步骤,包括:
选择随机数计算:
tok2=gcs,tok3=As=g(acs-rs)/b;
对属性集Atts中的每个属性atj∈Atts,计算A′j=Aj s,令B′j=Bj s,则有:
TW=(Atts,tok1,tok2,tok3,{(A′j,B′j)|atj∈Atts})
其中,TW为检索陷门。
6.根据权利要求1所述的方法,其特征在于,所述的由智能合约将所接收的检索陷门在索引项密文列表中进行匹配的步骤,包括:
根据接收的检索陷门TW′,提取检索陷门TW′中的属性集Atts,对于索引项密文列表中的索引项密文CW,选择满足索引项密文CW中的访问策略树的属性集合S,若S不存在则说明没有检索权限,检索返回0;若存在S满足索引项密文中的访问策略树/>对于S中的每个属性atj,计算:
Y表示访问策略树的叶节点,对于att(y)∈S,计算访问策略树根节点的则检索结果为:
其中,b=1表示匹配成功,b=0表示匹配未成功。
7.根据权利要求1所述的方法,其特征在于,所述的由检索者在本地以用户密钥解密该索引项密文,根据该索引项密文解密得到交易id的明文的步骤,包括:
使用递归函数DecryptNode(CT,SK,x),设用户密钥SK对应的属性集为S,当x为访问策略树的叶结点,令i=att(x),如果i∈S,则:
当x不是访问策略树的叶结点时,以孩子结点为输入递归调用DecryptNode()函数,令:
则明文M为:
8.根据权利要求3所述的方法,其特征在于,所述的将该索引项密文和该密文上传到区块链账本中的步骤,还包括:
在索引项密文CW前端插入索引头,索引头定义为{,next,nextItem}三元组,其中key为索引头的密文,next为下一索引头的指针,nextItem为索引头对应的交易id列表的指针。
9.一种基于区块链的隐私数据共享和检索系统,其特征在于,包括初始化模块、数据共享模块、陷门生成模块以及检索模块,其中
所述初始化模块,被配置为将获取的安全系数输入系统初始化函数进行初始化,得到公共参数和主密钥,当新用户加入时,根据用户输入的属性集和所述主密钥计算生成用户密钥;
所述数据共享模块,被配置为当用户进行数据共享时,将共享者的共享数据和访问策略树提交给区块链智能合约,由智能合约按照预先设定的规则提取共享数据中的关键词,根据所述关键词、所述访问策略树以及共享数据中的交易id生成对应的索引项密文,将该索引项密文加入智能合约的索引项密文列表中,根据访问策略树和所述公共参数将共享数据进行加密得到密文,将该索引项密文和该密文上传到区块链账本中,所述访问策略树的叶节点设置有属性值,通过访问策略树的结构对可访问共享数据的用户属性进行限制;
所述陷门生成模块,被配置为当用户申请数据检索时,获取检索者的关键词信息和用户密钥并提交给智能合约,由智能合约根据关键词信息以及用户密钥中的属性集生成检索陷门,将检索陷门返回给检索者;
所述检索模块,被配置为当用户进行数据检索时,接收检索者向智能合约提交的检索陷门,由智能合约将所接收的检索陷门在索引项密文列表中进行匹配,若该检索陷门中的属性集与索引项密文匹配成功,则将对应的索引项密文返回给检索者,由检索者在本地以用户密钥解密该索引项密文,根据该索引项密文解密得到交易id的明文,由检索者向智能合约请求交易id对应的交易数据,由智能合约向区块链账本请求对应的交易数据并返回给检索者。
10.一种计算设备,其特征在于,包括存储设备以及处理器,所述存储设备用于存储计算机程序,所述处理器运行所述计算机程序以使所述计算设备执行权利要求1-8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310423161.0A CN116663046A (zh) | 2023-04-19 | 2023-04-19 | 基于区块链的隐私数据共享和检索方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310423161.0A CN116663046A (zh) | 2023-04-19 | 2023-04-19 | 基于区块链的隐私数据共享和检索方法、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116663046A true CN116663046A (zh) | 2023-08-29 |
Family
ID=87708690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310423161.0A Pending CN116663046A (zh) | 2023-04-19 | 2023-04-19 | 基于区块链的隐私数据共享和检索方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116663046A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117596036A (zh) * | 2023-11-20 | 2024-02-23 | 北京邮电大学 | 多时间粒度约束的动态属性基加密访问控制方法 |
-
2023
- 2023-04-19 CN CN202310423161.0A patent/CN116663046A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117596036A (zh) * | 2023-11-20 | 2024-02-23 | 北京邮电大学 | 多时间粒度约束的动态属性基加密访问控制方法 |
CN117596036B (zh) * | 2023-11-20 | 2024-06-11 | 北京邮电大学 | 多时间粒度约束的动态属性基加密访问控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022007889A1 (zh) | 基于区块链与同态加密的可搜索加密数据共享方法及系统 | |
CN110224986B (zh) | 一种基于隐藏策略cp-abe的高效可搜索访问控制方法 | |
CN113194078B (zh) | 一种云端支持隐私保护的排序多关键字搜索加密方法 | |
CN107256248B (zh) | 云存储安全中基于通配符的可搜索加密方法 | |
CN112365945B (zh) | 基于区块链的电子病历细粒度访问控制和密文可搜索方法 | |
CN111902809B (zh) | 雾计算下基于cp-abe的密文搜索方法、装置、设备及存储介质 | |
CN108092972B (zh) | 一种多授权中心基于属性的可搜索加密方法 | |
CN112989375B (zh) | 一种分级优化加密无损隐私保护方法 | |
CN110866135B (zh) | 一种基于响应长度隐藏的k-NN图像检索方法及系统 | |
CN108632385B (zh) | 基于时间序列的多叉树数据索引结构云存储隐私保护方法 | |
CN108021677A (zh) | 云计算分布式检索引擎的控制方法 | |
CN112543099B (zh) | 一种基于边缘计算的无证书可搜索加密方法 | |
CN112532650A (zh) | 一种基于区块链的多备份安全删除方法、系统 | |
CN108092766A (zh) | 一种密文搜索权限验证方法及其系统 | |
CN115459967A (zh) | 一种基于可搜索加密的密文数据库查询方法及系统 | |
CN114640458A (zh) | 云边协同环境下细粒度的多用户安全可搜索加密方法 | |
CN107294701B (zh) | 具有高效密钥管理的多维密文区间查询装置及查询方法 | |
CN116611083A (zh) | 一种医疗数据共享方法及系统 | |
CN117744120B (zh) | 一种多用户可搜索加密方法及系统 | |
CN116663046A (zh) | 基于区块链的隐私数据共享和检索方法、系统及设备 | |
CN109783456B (zh) | 去重结构搭建方法、去重方法、文件取回方法、去重系统 | |
CN114567465A (zh) | 基于区块链的分类医疗数据可搜索加密方法 | |
Yan et al. | Secure and efficient big data deduplication in fog computing | |
CN109672525B (zh) | 一种具有前向索引的可搜索公钥加密方法及系统 | |
WO2019178792A1 (zh) | 一种支持访问控制的密文搜索方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |