CN115208692A - 一种基于链上链下协同的数据分享方法 - Google Patents

一种基于链上链下协同的数据分享方法 Download PDF

Info

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
Application number
CN202211089453.7A
Other languages
English (en)
Inventor
顾国民
刘洋
李英龙
陈铁明
王婷
朱建明
季白杨
周君良
俞荣栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN202211089453.7A priority Critical patent/CN115208692A/zh
Publication of CN115208692A publication Critical patent/CN115208692A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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/0471Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/321Cryptographic 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/3213Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, 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算法生成公私钥对
Figure 722373DEST_PATH_IMAGE001
,并通过公钥推算出钱包地址(address)。参考公式(1),使用密码学安全伪随机数生成器(CSPNG)生成一个256长度的随机数作为私钥。参考公式(2),通过椭圆曲线密码学算法生成公钥。参考公式(3),钱包地址由公钥经过单向哈希算法SHA256和RIPEMD160生成后,再经过Base58Check编码后得到。随后个人数据钱包保存生成的公私钥对和地址。
Figure 892585DEST_PATH_IMAGE002
其中,CSPNG为密码学安全伪随机数生成器,seed为生成器种子参数,sk为生成的私钥;
Figure 243932DEST_PATH_IMAGE003
其中,G为一个生成点,sk为私钥,pk为生成的公钥;
Figure 65258DEST_PATH_IMAGE005
其中,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的公钥对数据进行加密,获得密文。随后生成数据的元数据,方式包括用户填入和个人数据钱包计算,元数据包括数据的哈希值、采用的哈希算法、数据类型、数据名称、描述信息、密文路径;
Figure 476647DEST_PATH_IMAGE007
其中H为哈希运算,file为数据文件,hashValue为计算出的哈希值;
Figure 632691DEST_PATH_IMAGE009
其中Enc为加密运算,file为数据文件,
Figure 522150DEST_PATH_IMAGE010
为Alice的公钥,
Figure 463561DEST_PATH_IMAGE011
为生成的密文。
(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的公钥生成重加密密钥,并调用智能合约的同意授权方法,发送重加密密钥。如果选择拒绝则调用智能合约的拒绝授权方法。
Figure 45852DEST_PATH_IMAGE013
其中ReKeyGen为重加密密钥生成算法,
Figure 187727DEST_PATH_IMAGE014
为Alice的私钥,
Figure 880877DEST_PATH_IMAGE015
为Bob的公钥,
Figure 411215DEST_PATH_IMAGE016
为生成的重加密密钥。
(4-3) 数据令牌管理合约收到调用后,如果是同意授权,保存重加密密钥,设置授权状态为通过授权。如果是拒绝授权,设置授权状态为拒绝授权。并发起授权通过事件。
步骤(5)中,参考图3,数据请求者访问数据,包括:8. Bob的个人数据钱包监听到授权事件;9. Bob的个人数据钱包通知Bob授权通过;10. Bob开始访问数据;11. Bob的个人数据钱包发送重加密密钥至代理中间件;12. 代理中间件从数据库中获取到原密文;14.代理中间件进行密文转换;15. Bob的个人数据钱包获得新密文;16. Bob的个人数据钱包解密文,并校验哈希值的正确性。
数据请求者访问数据的具体步骤如下:(5-1) 个人数据钱包监听到授权通过事件后,数据请求者选择访问数据,获取对应的原密文地址、重加密密钥。发送到代理中间件。
(5-2) 代理中间件收到个人数据钱包的请求后,参考公式(7),访问数据库获取原密文,利用重加密密钥转换密文,将转换后的新密文返回给个人数据钱包;
Figure 164407DEST_PATH_IMAGE018
其中ReEnc为转换密文算法,
Figure 29464DEST_PATH_IMAGE019
为生成的重加密密钥,
Figure 526304DEST_PATH_IMAGE020
为Alice的原始密文,
Figure 176729DEST_PATH_IMAGE021
为转换后的密文。
(5-3) 个人数据钱包收到密文后,参考公式(8),使用私钥解密密文,得到明文数据。参考公式(9),检查对应的数据令牌中的哈希算法和哈希值,计算数据的哈希值。判断是否与数据令牌中记录的哈希值相等,如果相等则代表数据是原数据文件;
Figure 835243DEST_PATH_IMAGE023
其中,Dec为解密运算,
Figure 954640DEST_PATH_IMAGE024
为Bob的私钥,
Figure 989592DEST_PATH_IMAGE025
为密文,file为数据明文文件;
Figure 760102DEST_PATH_IMAGE026
其中,H为哈希运算,
Figure 589518DEST_PATH_IMAGE027
为计算出的哈希值。
步骤(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) 代理中间件监听到销毁事件,删除数据库中对应的数据文件。
CN202211089453.7A 2022-09-07 2022-09-07 一种基于链上链下协同的数据分享方法 Pending CN115208692A (zh)

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)

* Cited by examiner, † Cited by third party
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 索尼集团公司 基于私钥管理的区块链事务控制

Patent Citations (7)

* Cited by examiner, † Cited by third party
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