CN115208692A - 一种基于链上链下协同的数据分享方法 - Google Patents
一种基于链上链下协同的数据分享方法 Download PDFInfo
- Publication number
- CN115208692A CN115208692A CN202211089453.7A CN202211089453A CN115208692A CN 115208692 A CN115208692 A CN 115208692A CN 202211089453 A CN202211089453 A CN 202211089453A CN 115208692 A CN115208692 A CN 115208692A
- Authority
- CN
- China
- Prior art keywords
- data
- user
- wallet
- token
- personal
- 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 50
- 238000005266 casting Methods 0.000 claims abstract description 18
- 238000013475 authorization Methods 0.000 claims description 46
- 239000003795 chemical substances by application Substances 0.000 claims description 16
- 230000006378 damage Effects 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 11
- 239000003999 initiator Substances 0.000 claims description 4
- 238000012790 confirmation Methods 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007474 system interaction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Classifications
-
- 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/0471—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 applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- 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/321—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 involving a third party or a trusted authority
- H04L9/3213—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 involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- 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
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/76—Proxy, i.e. using intermediary entity to perform cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种基于链上链下协同的数据分享方法,包括如下步骤:(1)系统初始化和用户注册。(2)数据提供者铸造数据令牌。(3)数据请求者发起数据请求。(4)数据提供者授权数据请求。(5)数据请求者访问数据。(6)数据提供者销毁数据令牌。该方法的优势在于:(1)设计基于智能合约的数据令牌,控制数据分享过程。(2)分享数据采用密文存储在链下传统信息系统,减少链上压力,保护数据隐私。(3)采用代理重加密的密文共享机制,提升整体数据分享效率,提供访问控制能力。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种基于链上链下协同的数据分享方法。
背景技术
区块链技术是一种分布式账本技术,提供了数据的不可篡改,可追溯的特性。但是为了建立这种信任机制。区块链将数据冗余存储在每个节点中,如果将大文件上链会造成很大的负担。常见的做法是将大文件在链下存储,在链上存储文件的指纹信息,如哈希值。
目前链上链下数据协同的基本思路为,数据提供者首先将文件上传至传统信息系统,数据的指纹信息上传至区块链。数据使用者从传统信息系统中获取数据文件,并通过查询链上数据的指纹信息,进行对比指纹信息确定数据文件的真实性。由于链下存储通常是在云环境中,云环境通常是半信任的环境。数据有泄漏的风险,因此数据的隐私需要得到保护。常见的密文传输思路有数据提供者下载密文解密后再利用数据请求者的公钥加密后,将密文发送给数据请求者。需要数据提供者反复加解密文件,系统开销大,流程繁琐。
为了解决以上问题,如何设计合理的智能合约管理数据分享过程,并在此基础上提供高效可信的数据分享方法,是亟待解决的一个问题。
发明内容
针对以上问题,本发明提供了一种基于链上链下协同的数据分享方法,为基于智能合约和代理重加密的链上链下数据协同方法。
本发明的主要特点为:个人数据钱包、区块链上智能合约、链下存储系统。所述个人数据钱包包括:钱包地址管理模块、数据令牌模块、区块链交互模块、存储系统交互模块。所述链下存储系统包括:代理中间件、数据库。所述区块链上智能合约包括:数据令牌管理合约。
一种基于链上链下协同的数据分享方法,包括如下步骤:
(1)系统初始化与用户注册;
(2)用户一作为数据提供者,使用个人数据钱包通过数据令牌管理合约铸造数据令牌;
(3)用户二作为数据请求者,使用个人数据钱包通过数据令牌管理合约发起数据请求;
(4)用户一作为数据提供者使用个人数据钱包通过数据令牌管理合约授权数据请求;
(5)用户二作为数据请求者使用个人数据钱包通过数据令牌管理合约和代理中间件访问数据;
(6)用户一作为数据提供者使用个人数据钱包通过数据令牌管理合约销毁数据令牌。
本发明通过链上智能合约管理数据分享过程,将密文转换过程转移到链下代理重加密中间件上,能够保证分享数据的保密性、完整性和真实性,并且具有较低的链上开销。
步骤(1)中,系统初始化与用户注册的具体步骤如下:
(1-1) 在区块链上部署数据令牌管理合约,在区块链下部署存储系统,所述的存储系统包括:代理中间件和数据库,在用户端上部署个人数据钱包,完成系统初始化;
数据令牌管理合约包括铸造数据令牌、数据请求、数据授权和数据令牌销毁方法;
(1-2) 用户通过用户端采用对应区块链平台要求的算法生成公私钥对,然后通过公钥推算出钱包地址,个人数据钱包保存生成的公私钥对和钱包地址。
步骤(2)中,使用个人数据钱包通过数据令牌管理合约铸造数据令牌,具体包括:
(2-1) 用户一将要数据传入个人数据钱包,发起数据令牌铸造流程;
(2-2)用户一的公钥对步骤(2-1)传入的数据使用哈希算法生成数据的哈希值,并对步骤(2-1)传入的数据进行加密获得密文,并将密文发送到存储系统中,获得密文路径,由用户一填入和个人数据钱包计算生成元数据;
(2-3) 个人数据钱包调用区块链的数据令牌管理合约的铸造方法,传入步骤(2-2)生成的元数据;
(2-4) 数据令牌管理合约收到调用后,将调用用户一的钱包地址设为令牌拥有者,并分配一个数据令牌ID,铸造一个数据令牌,一个数据令牌包括:令牌ID、对应数据的元数据。
步骤(2-2)中,由用户一填入和个人数据钱包计算生成元数据具体包括:
用户一填入的描述信息、数据类型和数据名称;
计算生成的数据的哈希值、密文路径;
以及采用的哈希算法。
本发明中,通过将发起铸造数据令牌的用户一的钱包地址和数据的元数据写入区块链。依赖于区块链的不可篡改特性,能够证明用户一对数据的拥有权。配合密文的链下保存,可以保证数据的真实性、完整性和保密性。
步骤(3)中,使用个人数据钱包通过数据令牌管理合约发起数据请求,具体包括:
(3-1) 用户二通过个人数据钱包调用区块链的数据令牌管理合约的数据请求方法,传入所请求的数据令牌ID和用户二的公钥;
(3-2) 数据令牌管理合约收到调用后,将数据请求添加到数据请求列表中,设置请求状态为未授权,保存用户二的公钥,并发起数据请求事件。
步骤(3-2)中,数据请求事件包括请求用户的地址、请求的令牌ID、数据令牌所属用户的地址、该次数据请求编号。
步骤(4)中,用户一作为数据提供者使用个人数据钱包通过数据令牌管理合约授权数据请求,具体包括:
(4-1) 用户一的个人数据钱包监听到步骤(3-2)用户二发起的数据请求事件,如果事件中的数据令牌所属的钱包地址为用户一的个人数据钱包的地址,则向用户一发起授权确认请求;
(4-2) 用户一收到授权请求后,选择是否同意授权,如果选择同意,个人数据钱包使用自己的密钥和对方的公钥生成代理重加密密钥,并调用智能合约的同意授权方法,发送重加密密钥,如果选择拒绝则调用智能合约的拒绝授权方法;
(4-3) 数据令牌管理合约收到调用后,如果是同意授权,保存重加密密钥,设置授权状态为通过授权,如果是拒绝授权,设置授权状态为拒绝授权,并发起授权结果通知。
本发明中,通过数据令牌管理的请求和授权两个方法,提供了对数据的控制访问能力。与现有的基于属性加密的控制访问技术相比,该方法计算量小。
步骤(5)中,用户二作为数据请求者使用个人数据钱包通过数据令牌管理合约和代理中间件访问数据,具体包括:
(5-1) 用户二的个人数据钱包监听到授权通过事件后,用户二选择访问数据,获取对应的原密文地址、重加密密钥,发送到代理中间件;
(5-2) 代理中间件收到用户二的个人数据钱包的请求后,访问数据库获取原密文,利用重加密密钥转换密文,将转换后的新密文返回给用户二的个人数据钱包;
(5-3) 用户二的个人数据钱包收到密文后,使用私钥解密密文,得到明文数据,使用数据令牌中的哈希算法计算数据的哈希值,然后判断计算出的哈希值是否与数据令牌中记录的哈希值相等,如果相等则代表数据是原数据文件。否则代表数据被篡改。
本发明中,与使用对称密钥加密算法的密文的现有技术相比,数据分享是通过交换加密密钥进行的,一旦在数据分享时泄露了加密密钥,就会导致数据泄露。在本发明中通过生成代理重加密密钥转换密文,存储系统中的数据库所存储的密文数据是使用用户一的公钥加密获得的,只有数据拥有者的私钥泄露会导致数据泄露。另外,通过引入代理中间件进行密文的转换工作,该组件将这部分密文转换的计算移到了链下系统,节省了在区块链上进行计算的开销。
步骤(6)中,用户一作为数据提供者使用个人数据钱包通过数据令牌管理合约销毁数据令牌,具体包括:
(6-1) 用户一通过个人数据钱包进行数据令牌销毁,调用数据令牌管理合约的销毁方法,发送需要销毁的数据令牌ID;
(6-2) 数据令牌管理合约收到调用后,判断发起人的地址是否是数据令牌的拥有者,如果是则删除对应数据令牌,发起数据令牌销毁事件;
(6-3) 代理中间件监听到销毁事件,删除数据库中对应的数据文件。
本发明中,数据令牌管理合约提供的数据令牌销毁方法可以防止旧数据对存储系统的压力。
与现有技术对比,本发明的有益效果主要表现在:1、设计基于智能合约的数据令牌,便于数据分享过程的控制。2、分享数据采用密文存储在链下传统信息系统,以链上链下数据协同的方式减少链上压力,保护数据隐私。3、采用代理重加密的密文共享机制,能够减少密文传输次数,提升整体数据分享效率,提供访问控制能力。
附图说明
图1为本发明系统结构示意图。
图2为用户铸造数据令牌的时序图。
图3为数据请求、授权、访问时序图。
图4为用户销毁数据令牌时序图。
具体实施方式
下面将结合附图对本发明作进一步描述。
参照图1,一种基于链上链下的协同的数据分享方法,包含以下特点:个人数据钱包、区块链上智能合约、链下存储系统。个人数据钱包包括:钱包地址管理模块、数据令牌模块、区块链交互模块、存储系统交互模块。所述链下存储系统包括:代理中间件、数据库。区块链上智能合约包括:数据令牌管理合约。包括如下步骤:
(1) 系统初始化与用户注册;
(2) 数据提供者使用个人数据钱包通过数据令牌管理合约铸造数据令牌;
(3) 数据请求者使用个人数据钱包通过数据令牌管理合约发起数据请求;
(4) 数据提供者使用个人数据钱包通过数据令牌管理合约授权数据请求;
(5) 数据请求者使用个人数据钱包通过数据令牌管理合约和代理中间件访问数据;
(6) 数据提供者使用个人数据钱包通过数据令牌管理合约销毁数据令牌;
假设有两个用户Alice和Bob,Alice为数据提供者,Bob为数据请求者。
步骤(1)中,系统初始化与用户注册的具体步骤如下:(1-1) 在区块链上部署数据令牌管理合约,部署存储系统包括代理中间件和数据库软件。部署个人数据钱包。
(1-2) Alice和Bob采用ECDSA算法生成公私钥对,并通过公钥推算出钱包地址(address)。参考公式(1),使用密码学安全伪随机数生成器(CSPNG)生成一个256长度的随机数作为私钥。参考公式(2),通过椭圆曲线密码学算法生成公钥。参考公式(3),钱包地址由公钥经过单向哈希算法SHA256和RIPEMD160生成后,再经过Base58Check编码后得到。随后个人数据钱包保存生成的公私钥对和地址。
其中,CSPNG为密码学安全伪随机数生成器,seed为生成器种子参数,sk为生成的私钥;
其中,G为一个生成点,sk为私钥,pk为生成的公钥;
其中,SHA256和RIPEMD160为哈希算法,Base58Check为编码算法,address为生成的钱包地址。
一个生成的公私钥对和钱包地址参考示例如下:
{
"privateKey":"0xb5f7d093227d0dee1f3ca961d215e0f41f2e1a424f3fd6b90cdf629175154b1c",
"publicKey":"0x04A22333FA5096127FA4E50A0ADBAD975B3C0EF0AF9575454CDC70E353E5C9A2CB5CA1E8E303237DDE7BCFCF10FD528418406F3D01C1CE05C02782C15DA156BA33",
"address": "0x15DxjyvF55NfUHwVQfKE3upXpAnajZh5TK"
};
其中,"privateKey"为生成的私钥,"publicKey"为生成的公钥,"address"为生成的钱包地址。
步骤(2)中,参考图2,数据提供者铸造数据令牌,包括:1.Alice铸造数据令牌,上传数据文件;2. Alice的个人数据钱包生成对应数据的元数据,加密数据文件;3. 保存加密后的数据文件至数据库中;4. 调用合约的铸造方法;5. 链上数据令牌管理合约保存元信息,拥有者,生成数据令牌;6. 数据令牌ID返回至Alice的个人数据钱包。
数据提供者铸造数据令牌的具体步骤如下:(2-1) Alice将数据(file)传入个人数据钱包,发起数据令牌铸造流程。
(2-2) 参考公式(4),个人数据钱包使用哈希算法生成数据的哈希值。参考公式(5),使用Alice的公钥对数据进行加密,获得密文。随后生成数据的元数据,方式包括用户填入和个人数据钱包计算,元数据包括数据的哈希值、采用的哈希算法、数据类型、数据名称、描述信息、密文路径;
其中H为哈希运算,file为数据文件,hashValue为计算出的哈希值;
(2-3) 个人数据钱包调用区块链的数据令牌管理合约的铸造方法,传入步骤(2-2)生成的元数据。并将密文发送到存储系统保存。
(2-4) 数据令牌管理合约收到调用后,将调用Alice的地址设为令牌拥有者,并分配一个数据令牌ID。铸造一个数据令牌。一个数据令牌包括:令牌ID、对应数据的元数据。
步骤(3)中,参考图3,数据请求者发起数据请求,包括:1. Bob发起数据请求;2.Bob的个人数据钱包向链上数据令牌管理合约发送数据请求。
数据请求者发起数据请求的具体步骤如下:(3-1) Bob通过个人钱包调用区块链的数据令牌管理合约的数据请求方法,传入所请求的数据令牌ID和Bob的公钥。
(3-2) 数据令牌管理合约收到调用后,将该请求添加到数据请求列表中,设置请求状态为未授权,保存Bob的公钥。并发起数据请求事件,事件包括Bob的地址、请求的令牌ID、数据令牌所属用户的地址、该次数据请求编号。
步骤(4)中,参考图3,数据提供者授权数据请求,包括:3. Alice的个人钱包监听到请求事件;4. 数据钱包向Alice发起授权请求;5. Alice同意授权;6. 个人数据钱包生成重加密密钥;7. 个人数据钱包调用链上数据令牌管理合约的授权方法。
数据提供者授权数据请求的具体步骤如下:(4-1) 个人数据钱包监听到数据令牌管理合约的数据请求事件,如果事件中的数据令牌所属用户的地址为个人数据钱包的地址,则向用户发起授权确认请求。
(4-2) Alice收到授权请求后,选择是否同意授权,如果选择同意,参考公式(6),个人数据钱包使用自己的密钥和Bob的公钥生成重加密密钥,并调用智能合约的同意授权方法,发送重加密密钥。如果选择拒绝则调用智能合约的拒绝授权方法。
(4-3) 数据令牌管理合约收到调用后,如果是同意授权,保存重加密密钥,设置授权状态为通过授权。如果是拒绝授权,设置授权状态为拒绝授权。并发起授权通过事件。
步骤(5)中,参考图3,数据请求者访问数据,包括:8. Bob的个人数据钱包监听到授权事件;9. Bob的个人数据钱包通知Bob授权通过;10. Bob开始访问数据;11. Bob的个人数据钱包发送重加密密钥至代理中间件;12. 代理中间件从数据库中获取到原密文;14.代理中间件进行密文转换;15. Bob的个人数据钱包获得新密文;16. Bob的个人数据钱包解密文,并校验哈希值的正确性。
数据请求者访问数据的具体步骤如下:(5-1) 个人数据钱包监听到授权通过事件后,数据请求者选择访问数据,获取对应的原密文地址、重加密密钥。发送到代理中间件。
(5-2) 代理中间件收到个人数据钱包的请求后,参考公式(7),访问数据库获取原密文,利用重加密密钥转换密文,将转换后的新密文返回给个人数据钱包;
(5-3) 个人数据钱包收到密文后,参考公式(8),使用私钥解密密文,得到明文数据。参考公式(9),检查对应的数据令牌中的哈希算法和哈希值,计算数据的哈希值。判断是否与数据令牌中记录的哈希值相等,如果相等则代表数据是原数据文件;
步骤(6)中,参考图4,数据提供者销毁数据令牌包括:1. Alice销毁数据令牌;2.Alice的个人数据钱包调用链上数据令牌管理合约的销毁方法;3. 链上数据令牌管理合约检查拥有者的身份是否是发起者,随后删除数据令牌;4. 代理中间件监听到销毁事件;5.代理中间件释放数据库中对应的数据。
数据提供者销毁数据令牌的具体步骤如下:
(6-1) Alice通过个人数据钱包进行数据令牌销毁,调用智能合约的销毁方法,发送需要销毁的数据令牌ID;
(6-2) 数据令牌管理合约收到调用后,判断发起人的地址是否是数据令牌的拥有者,如果是则删除对应数据令牌。发起数据令牌销毁事件;
(6-3) 代理中间件监听到销毁事件,释放数据库中对应的数据文件。
Claims (10)
1.一种基于链上链下协同的数据分享方法,其特征在于,包括如下步骤:
(1)系统初始化与用户注册;
(2)用户一作为数据提供者,使用个人数据钱包通过数据令牌管理合约铸造数据令牌;
(3)用户二作为数据请求者,使用个人数据钱包通过数据令牌管理合约发起数据请求;
(4)用户一作为数据提供者使用个人数据钱包通过数据令牌管理合约授权数据请求;
(5)用户二作为数据请求者使用个人数据钱包通过数据令牌管理合约和代理中间件访问数据;
(6)用户一作为数据提供者使用个人数据钱包通过数据令牌管理合约销毁数据令牌。
2.根据权利要求1所述的一种基于链上链下协同的数据分享方法,其特征在于,步骤(1)中,系统初始化与用户注册的具体步骤如下:
(1-1) 在区块链上部署数据令牌管理合约,在区块链下部署存储系统,在用户端上部署个人数据钱包,完成系统初始化;
(1-2) 用户通过用户端采用对应区块链平台要求的算法生成公私钥对,然后通过公钥推算出钱包地址,个人数据钱包保存生成的公私钥对和钱包地址。
3.根据权利要求2所述的一种基于链上链下协同的数据分享方法,其特征在于,步骤(1-1)中,所述的存储系统包括:代理中间件和数据库。
4.根据权利要求1所述的一种基于链上链下协同的数据分享方法,其特征在于,步骤(2)中,使用个人数据钱包通过数据令牌管理合约铸造数据令牌,具体包括:
(2-1) 用户一将数据传入个人数据钱包,发起数据令牌铸造流程;
(2-2)用户一的公钥对步骤(2-1)传入的数据使用哈希算法生成数据的哈希值,并对步骤(2-1)传入的数据进行加密获得密文,并将密文发送到存储系统中,获得密文路径,由用户一填入和个人数据钱包计算生成元数据;
(2-3) 个人数据钱包调用区块链的数据令牌管理合约的铸造方法,传入步骤(2-2)生成的元数据;
(2-4) 数据令牌管理合约收到调用后,将调用用户一的钱包地址设为令牌拥有者,并分配一个数据令牌ID,铸造一个数据令牌,一个数据令牌包括:令牌ID、对应数据的元数据。
5.根据权利要求4所述的一种基于链上链下协同的数据分享方法,其特征在于,步骤(2-2)中,由用户一填入和个人数据钱包计算生成元数据具体包括:
用户一填入的描述信息、数据类型和数据名称;
计算生成的数据的哈希值、密文路径;
以及采用的哈希算法。
6.根据权利要求4所述的一种基于链上链下协同的数据分享方法,其特征在于,步骤(3)中,使用个人数据钱包通过数据令牌管理合约发起数据请求,具体包括:
(3-1) 用户二通过个人数据钱包调用区块链的数据令牌管理合约的数据请求方法,传入所请求的数据令牌ID和用户二的公钥;
(3-2) 数据令牌管理合约收到调用后,将数据请求添加到数据请求列表中,设置请求状态为未授权,保存用户二的公钥,并发起数据请求事件。
7.根据权利要求6所述的一种基于链上链下协同的数据分享方法,其特征在于,步骤(3-2)中,数据请求事件包括请求用户的地址、请求的令牌ID、数据令牌所属用户的地址、该次数据请求编号。
8.根据权利要求6所述的一种基于链上链下协同的数据分享方法,其特征在于,步骤(4)中,用户一作为数据提供者使用个人数据钱包通过数据令牌管理合约授权数据请求,具体包括:
(4-1) 用户一的个人数据钱包监听到步骤(3-2)用户二发起的数据请求事件,如果事件中的数据令牌所属的钱包地址为用户一的个人数据钱包的地址,则向用户一发起授权确认请求;
(4-2) 用户一收到授权请求后,选择是否同意授权,如果选择同意,个人数据钱包使用自己的密钥和对方的公钥生成代理重加密密钥,并调用智能合约的同意授权方法,发送重加密密钥,如果选择拒绝则调用智能合约的拒绝授权方法;
(4-3) 数据令牌管理合约收到调用后,如果是同意授权,保存重加密密钥,设置授权状态为通过授权,如果是拒绝授权,设置授权状态为拒绝授权,并发起授权结果通知。
9.根据权利要求1所述的一种基于链上链下协同的数据分享方法,其特征在于,步骤(5)中,用户二作为数据请求者使用个人数据钱包通过数据令牌管理合约和代理中间件访问数据,具体包括:
(5-1) 用户二的个人数据钱包监听到授权通过事件后,用户二选择访问数据,获取对应的原密文地址、重加密密钥,发送到代理中间件;
(5-2) 代理中间件收到用户二的个人数据钱包的请求后,访问数据库获取原密文,利用重加密密钥转换密文,将转换后的新密文返回给用户二的个人数据钱包;
(5-3) 用户二的个人数据钱包收到密文后,使用私钥解密密文,得到明文数据,检查对应的数据令牌中的哈希算法和哈希值,计算数据的哈希值,判断是否与数据令牌中记录的哈希值相等,如果相等则代表数据是原数据文件。
10.根据权利要求1所述的一种基于链上链下协同的数据分享方法,其特征在于,步骤(6)中,用户一作为数据提供者使用个人数据钱包通过数据令牌管理合约销毁数据令牌,具体包括:
(6-1) 用户一通过个人数据钱包进行数据令牌销毁,调用数据令牌管理合约的销毁方法,发送需要销毁的数据令牌ID;
(6-2) 数据令牌管理合约收到调用后,判断发起人的地址是否是数据令牌的拥有者,如果是则删除对应数据令牌,发起数据令牌销毁事件;
(6-3) 代理中间件监听到销毁事件,删除数据库中对应的数据文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211089453.7A CN115208692A (zh) | 2022-09-07 | 2022-09-07 | 一种基于链上链下协同的数据分享方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211089453.7A CN115208692A (zh) | 2022-09-07 | 2022-09-07 | 一种基于链上链下协同的数据分享方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115208692A true CN115208692A (zh) | 2022-10-18 |
Family
ID=83572472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211089453.7A Pending CN115208692A (zh) | 2022-09-07 | 2022-09-07 | 一种基于链上链下协同的数据分享方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115208692A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120639A (zh) * | 2018-09-26 | 2019-01-01 | 众安信息技术服务有限公司 | 一种基于区块链的数据云存储加密方法及系统 |
CN110457875A (zh) * | 2019-07-31 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 基于区块链的数据授权方法及装置 |
CN111191288A (zh) * | 2019-12-30 | 2020-05-22 | 中电海康集团有限公司 | 一种基于代理重加密的区块链数据访问权限控制方法 |
CN111523133A (zh) * | 2020-04-24 | 2020-08-11 | 远光软件股份有限公司 | 一种区块链与云端数据协同共享方法 |
CN113810421A (zh) * | 2021-09-18 | 2021-12-17 | 上海万向区块链股份公司 | 基于区块链的pre物联网数据共享方法及系统 |
CN114117496A (zh) * | 2021-11-30 | 2022-03-01 | 上海万向区块链股份公司 | 基于智能合约协议的代理重加密的数据分享系统及方法 |
CN114586314A (zh) * | 2019-10-31 | 2022-06-03 | 索尼集团公司 | 基于私钥管理的区块链事务控制 |
-
2022
- 2022-09-07 CN CN202211089453.7A patent/CN115208692A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120639A (zh) * | 2018-09-26 | 2019-01-01 | 众安信息技术服务有限公司 | 一种基于区块链的数据云存储加密方法及系统 |
CN110457875A (zh) * | 2019-07-31 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 基于区块链的数据授权方法及装置 |
CN114586314A (zh) * | 2019-10-31 | 2022-06-03 | 索尼集团公司 | 基于私钥管理的区块链事务控制 |
CN111191288A (zh) * | 2019-12-30 | 2020-05-22 | 中电海康集团有限公司 | 一种基于代理重加密的区块链数据访问权限控制方法 |
CN111523133A (zh) * | 2020-04-24 | 2020-08-11 | 远光软件股份有限公司 | 一种区块链与云端数据协同共享方法 |
CN113810421A (zh) * | 2021-09-18 | 2021-12-17 | 上海万向区块链股份公司 | 基于区块链的pre物联网数据共享方法及系统 |
CN114117496A (zh) * | 2021-11-30 | 2022-03-01 | 上海万向区块链股份公司 | 基于智能合约协议的代理重加密的数据分享系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144961B (zh) | 授权文件共享方法及装置 | |
CN109040045B (zh) | 一种基于密文策略属性基加密的云存储访问控制方法 | |
CN110535833B (zh) | 一种基于区块链的数据共享控制方法 | |
Zhao et al. | Trusted data sharing over untrusted cloud storage providers | |
Khanezaei et al. | A framework based on RSA and AES encryption algorithms for cloud computing services | |
JP4855940B2 (ja) | 暗号用鍵の世代の効率的な管理 | |
US7688975B2 (en) | Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure | |
CN108352015A (zh) | 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移 | |
CN110224814A (zh) | 一种区块链数据共享方法及装置 | |
CN109450843B (zh) | 一种基于区块链的ssl证书管理方法及系统 | |
CN113067699B (zh) | 基于量子密钥的数据共享方法、装置和计算机设备 | |
CN112532580B (zh) | 一种基于区块链及代理重加密的数据传输方法及系统 | |
WO2014114080A1 (zh) | 数据加密保护方法及系统 | |
CN114036539A (zh) | 基于区块链的安全可审计物联网数据共享系统及方法 | |
CN111600948B (zh) | 基于标识密码的云平台应用和数据安全处理方法、系统、存储介质、程序 | |
CN114500069A (zh) | 一种电子合同的存储及共享的方法与系统 | |
CN117396869A (zh) | 用于使用分布式账本技术进行安全密钥管理的系统和方法 | |
CN112861157A (zh) | 一种基于去中心化身份和代理重加密的数据共享方法 | |
CN114357492A (zh) | 一种基于区块链的医疗数据隐私融合方法及装置 | |
CN115567312A (zh) | 一种可满足多种场景的联盟链数据权限管理系统和方法 | |
CN113726772A (zh) | 实现在线问诊会话的方法、装置、设备及存储介质 | |
CN113761594A (zh) | 一种基于身份的三方可认证密钥协商和数据共享方法 | |
CN112149184A (zh) | 一种基于限时访问的区块链链外存储系统及方法 | |
Gohel et al. | A new data integrity checking protocol with public verifiability in cloud storage | |
CN114091058A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221018 |
|
RJ01 | Rejection of invention patent application after publication |