CN115001824B - 一种面向区块链的数据加密共享方法、装置及存储介质 - Google Patents

一种面向区块链的数据加密共享方法、装置及存储介质 Download PDF

Info

Publication number
CN115001824B
CN115001824B CN202210623984.3A CN202210623984A CN115001824B CN 115001824 B CN115001824 B CN 115001824B CN 202210623984 A CN202210623984 A CN 202210623984A CN 115001824 B CN115001824 B CN 115001824B
Authority
CN
China
Prior art keywords
key
ciphertext
sequence
node
data
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.)
Active
Application number
CN202210623984.3A
Other languages
English (en)
Other versions
CN115001824A (zh
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.)
Yunnan Agilesoft Technology Co ltd
Original Assignee
Yunnan Agilesoft Technology Co ltd
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 Yunnan Agilesoft Technology Co ltd filed Critical Yunnan Agilesoft Technology Co ltd
Priority to CN202210623984.3A priority Critical patent/CN115001824B/zh
Publication of CN115001824A publication Critical patent/CN115001824A/zh
Application granted granted Critical
Publication of CN115001824B publication Critical patent/CN115001824B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/3247Cryptographic 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 digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供的一种面向区块链的数据加密共享方法、装置及存储介质,涉及区块链技术领域。本实施所提出的数据加密共享方法通过异或运算来构造密钥序列,并实现了客户端与区块链节点之间通过一套密钥序列实现“一对一”以及“一对多”的数据加密;其加密计算量小,相较于现有数据加密共享方法,具备不需要管理大量密钥、无需多次构建密钥序列的优势,适用于多节点数据共享的情况;此外,本发明还通过加入Keys加密密钥来防止各节点通过反算来破解加密的情况;通过加入明文加密密钥来实现内网数据的分享,外部节点无法直接获取内网明文,兼顾实用性与安全性。

Description

一种面向区块链的数据加密共享方法、装置及存储介质
技术领域
本发明涉及区块链技术领域,尤其涉及一种面向区块链的数据加密共享方法、装置及存储介质。
背景技术
随着区块链技术的发展和广泛应用,越来越多的区块链系统应运而生。
目前业内公认区块链最重要的一个用途是数据共享,在联盟链中大部分的做法是将数据的HASH上链,原数据依然存储在本地,如需数据共享则还需要链下进行。故通过现有手段还不能做到真正意义上的数据交换共享。
因此,有必要提供一种面向区块链的数据加密共享方法、装置及存储介质来解决上述之一技术问题。
发明内容
为解决上述技术问题之一,本发明提出一种面向区块链的数据加密共享方法,部署于区块链上,所述区块链包括若干客户端和若干区块链节点,各客户端分别与各节点建立通信链路,并通过数据加密上传步骤将客户端数据进行加密并上传至区块链;所述数据加密上传步骤的子步骤包括密钥生成步骤、密文生成步骤和密文上传步骤;所述密钥生成步骤用于生成加密密钥,所述密文生成步骤用于对数据明文通过加密密钥进行加密,并获得密文;所述密文上传步骤将密文上传至区块链上,其中,所述密钥生成步骤的子步骤包括:
客户端密钥序列生成:通过密钥生成算法,生成客户端密钥序列Keys;其中,Keys=[Key1,Key2,Key3....Keyn], 为异或运算符,n为区块链节点总数,Key1,Key2,Key3....Keyn为密钥项;
节点密钥序列生成:通过密钥生成算法,生成与客户端密钥序列Keys对应的n条缺省密钥序列并作为节点密钥序列;其中,/> *表示缺省的密钥项;/>中的n表示缺省的密钥项编号,Key1,Key2,Key3....Keyn为密钥项;
密钥序列分配:客户端保存完整的客户端密钥序列Keys,各节点密钥序列随机分配给各区块链节点;其中,向各区块链节点分配的节点密钥序列均不相同。
作为更进一步的解决方案,所述密文生成步骤:客户端设置Nodes集合,所述Nodes集合用于保存客户端指定的可信区块链节点;获取各可信区块链节点的节点密钥序列,并求取各节点密钥序列中相同的密钥项,得到密文解密序列;将客户端密钥序列Keys与密文解密序列相同的密钥项剔除,得到密文加密序列;将密文加密序列对待上传的明文数据进行加密,得到密文;将密文存储至区块链上;所述可信区块链节点通过自身的节点密钥序列进行组合,得到密文解密序列,并对密文进行解密与查看。
作为更进一步的解决方案,所述密文上传步骤:客户端发送交易至区块链,完成密文上传;所述交易包括TxID、Payload和Sign,其中,所述TxID为交易的唯一标识;所述Payload用于保存交易内容,包括合约相关信息和合约参数,所述合约相关信息包括合约名称与合约版本号,所述合约参数用于保存上传数据;所述Sign用于保存消息签名。
作为更进一步的解决方案,所述密文以结构化数据在区块链上进行存储,存储结构为:Key->Nodes,E(D,K)[密文],其中,Key表示共享数据的存储关键字,通过Key能对数据进行请求,->为指向结构体成员运算符,Nodes表示当前数据对应的可信区块链节点的集合;E(D,K)[密文]表示明文数据通过密文加密序列加密后得到的密文数据。
作为更进一步的解决方案,各客户端还通过加密数据请求步骤来对区块链上的加密数据进行索取与解密:
A1.客户端向区块链节点发送查询请求,
A2.区块链节点解析查询请求,获取查询请求对应的Key,并从本地账本中获取Key对应的数据D;
A3.解析数据D,获取对应的Nodes集合与密文E;
A4.通过Nodes集合,判断当前节点是否属于Nodes集合,若是,则执行解密步骤;若否,则应答客户端当前节点无法解析,并结束访问;
A5.对各区块链节点执行A1-A4步骤;
解密步骤:
B1.节点通过密文解密序列获取步骤,得到密文解密序列;
B2.判断密文解密序列是否合法,若合法,则执行下一步;若不合法,则表示当前节点无法解析,并向客户端应答解析失败,并结束访问;
B3.使用密文解密序列对密文E进行解密,得到明文T,并将明文T向客户端应答,并结束访问。
作为更进一步的解决方案,通过如下步骤获取密文解密序列:
C1.获取Nodes集合,初始化ANS节点集合与密文解密序列KS;其中,所述ANS节点集合通过所有区块链节点构成;
C2.判断ANS节点集合中,节点ANS[i]是否在Nodes集合中;若是,则将节点ANS[i]对应的节点密钥序列进行保留;若否,则进行舍弃;
C3.重复C2步骤,遍历ANS节点集合,得到保留下来的节点密钥序列;
C4.读取保留下来的节点密钥序列中的密钥项,若密钥项均存在于保留下来的节点密钥序列中,则对密钥项进行保留;否则进行舍弃;
C5.重复C4步骤,遍历各密钥项,并将保留下来的密钥项加入密文解密序列KS中;得到密文解密序列KS。
作为更进一步的解决方案,所述客户端密钥序列Keys和密文加密序列中还设置有Keys加密密钥;
所述客户端密钥序列Keys:Keys=[Key1,Key2,Key3....Keyn,KKey], 为异或运算符,n为区块链节点总数,Key1,Key2,Key3....Keyn为密钥项,KKey为Keys加密密钥;
所述密文加密序列:获取各可信区块链节点的节点密钥序列,并求取各节点密钥序列中相同的密钥项,得到密文解密序列;将客户端密钥序列Keys中与密文解密序列相同的密钥项剔除,得到密文加密序列;其中,密文加密序列中包括Keys加密密钥。
作为更进一步的解决方案,所述密钥序列Keys和各节点密钥序列中还设置有明文加密密钥;
所述客户端密钥序列Keys:Keys=[Key1,Key2,Key3....Keyn,SKey], 为异或运算符,n为区块链节点总数,Key1,Key2,Key3....Keyn为密钥项,SKey为明文加密密钥;
所述节点密钥序列: *表示缺省的密钥项;/>中的n表示缺省的密钥项编号,Key1,Key2,Key3....Keyn为密钥项;SKey为明文加密密钥。
作为更进一步的解决方案,一种装置,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上述任一项所述的方法。
一种计算机可读存储介质,所述计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上述任一权项所述的方法。
与相关技术相比较,本发明提供的一种面向区块链的数据加密共享方法、装置及存储介质具有如下有益效果:
本实施所提出的数据加密共享方法通过异或运算来构造密钥序列,并实现了客户端与区块链节点之间通过一套密钥序列实现“一对一”以及“一对多”的数据加密;其加密计算量小,相较于现有数据加密共享方法,具备不需要管理大量密钥、无需多次构建密钥序列的优势,适用于多节点数据共享的情况;此外,本发明还通过加入Keys加密密钥来防止各节点通过反算来破解加密的情况;通过加入明文加密密钥来实现内网数据的分享,外部节点无法直接获取内网明文,兼顾实用性与安全性。
附图说明
图1为本发明提供的一种面向区块链的数据加密共享方法较佳实施例密钥分配示意图一;
图2为本发明提供的一种面向区块链的数据加密共享方法较佳实施例密钥分配示意图二;
图3为本发明提供的一种面向区块链的数据加密共享方法较佳实施例交易结构图;
图4为本发明提供的一种面向区块链的数据加密共享方法较佳实施例加密数据索取流程图;
图5为本发明提供的一种面向区块链的数据加密共享方法较佳实施例加密数据解密流程图;
图6至图8为现有数据加密共享方法示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
需要说明的是:数据共享会涉及安全问题,在实际的业务系统中,对数据是有安全管理限制的,他们通常只希望自己关注的节点或自己信任的节点可以看到全部的数据,基于这种方式,目前业内的方案通常是每个客户端(业务方)会与每个节点保持一份密钥对,这样在数据共享时可采用如图6的方式进行。
从图6可以看出,每个客户端会与每个节点保持一份密钥对,无论对于节点还是对于客户端而言,他们维护的密钥数量都是非常多的。如果节点数为N,客户端数量为M的话,整体需要维护的密钥对会是M*N(PK,PR为一对密钥),当客户端数量很大时,钥秘的维护也会非常困难。
现有技术缺陷不止于此,如果客户端不是只想共享给一个节点,而是想共享给两个节点,那么目前有两种方案,如图7的方案比较简单,即针对两次分享的方式新设置一个密钥,该密钥只用于两个节点分享。但从图7中可以看出,这种方式会大大增加密钥的数量,其增加的密钥会以指数的方式增加,大大增加节点和客户端密钥的管理难度。如图8所示的方案是对数据进行多次加密,但是加密次数的增加会加大客户端的负担,此外,在将文件共享给不同节点时,需上传多个密文,这会使网络负担大大增加。
如图1至图5所示,本发明提供的一种面向区块链的数据加密共享方法,部署于区块链上,所述区块链包括若干客户端和若干区块链节点,各客户端分别与各节点建立通信链路,并通过数据加密上传步骤将客户端数据进行加密并上传至区块链;所述数据加密上传步骤的子步骤包括密钥生成步骤、密文生成步骤和密文上传步骤;所述密钥生成步骤用于生成加密密钥,所述密文生成步骤用于对数据明文通过加密密钥进行加密,并获得密文;所述密文上传步骤将密文上传至区块链上,其中,所述密钥生成步骤的子步骤包括:
客户端密钥序列生成:通过密钥生成算法,生成客户端密钥序列Keys;其中,Keys=[Key1,Key2,Key3....Keyn], 为异或运算符,n为区块链节点总数,Key1,Key2,Key3....Keyn为密钥项;
节点密钥序列生成:通过密钥生成算法,生成与客户端密钥序列Keys对应的n条缺省密钥序列并作为节点密钥序列;其中,/> *表示缺省的密钥项;/>中的n表示缺省的密钥项编号,Key1,Key2,Key3....Keyn为密钥项;
密钥序列分配:客户端保存完整的客户端密钥序列Keys,各节点密钥序列随机分配给各区块链节点;其中,向各区块链节点分配的节点密钥序列均不相同。
需要说明的是:本实施所提出的数据加密共享方法的核心在于构造客户端密钥序列和节点密钥序列;在如图1所示的例子中,节点包括A节点、B节点和C节点,客户端包括客户端M与客户端N,由于本实施例仅涉及到客户端与节点之间的数据分享,且各客户端与节点之间采用相同的方法进行,故只对客户端M进行说明。
节点数为3,即n=3,根据Keys=[Key1,Key2,Key3....Keyn]可得,客户端M的客户端密钥序列为[KA,KB,Kc];根据可得,A节点、B节点和C节点对应的节点密钥序列分别为[KA,KB],[KB,Kc]和[Kc,KA](序列分配随机且不影响最终结果,本实施例为方便描述,对其中一种分配情形进行描述)。
若客户端M要将数据分享给A节点,就需要将A节点的节点密钥序列[KA,KB]作为数据解密密钥,因为[KA,KB]是A节点独有的,故需要构造数据加密密钥,并且只有A节点的[KA,KB]能对密文进行解密,为此,本实施例通过异或运算来构造密钥序列;异或运算满足下面几个规律:1.2./>3./>4./>可以推出5./>由于/>故在本实施例中:若对明文D使用Kc加密:则密文/>对密文E(D,Kc)进行解密,则/>即得到明文D。
若客户端M要将数据分享给A节点与B节点;就需要将两者共有的密钥项作为解密密钥,即[KA,KB],[KB,Kc]所共有的密钥项KB为解密密钥;由于 在本实施例中:/>故需用[Kc,KA]作为加密密钥,密文/> 对密文E(D,Kc,KA)进行解密,则/> 即得到明文D。
从上述两个例子我们不难看出,若需要将密文分享到指定一个节点时,仅需将该节点独有的密钥序列作为解密密钥,其他密钥项作为加密密钥即可。若需要将密文分享到指定多个节点时,仅需找出两节点密钥序列共有的密钥项作为解密密钥,其他密钥项作为加密密钥即可。
作为更进一步的解决方案,所述密文生成步骤:客户端设置Nodes集合,所述Nodes集合用于保存客户端指定的可信区块链节点;获取各可信区块链节点的节点密钥序列,并求取各节点密钥序列中相同的密钥项,得到密文解密序列;将客户端密钥序列Keys与密文解密序列相同的密钥项剔除,得到密文加密序列;将密文加密序列对待上传的明文数据进行加密,得到密文;将密文存储至区块链上;所述可信区块链节点通过自身的节点密钥序列进行组合,得到密文解密序列,并对密文进行解密与查看。
作为更进一步的解决方案,所述密文上传步骤:客户端发送交易至区块链,完成密文上传;所述交易包括TxID、Payload和Sign,其中,所述TxID为交易的唯一标识;所述Payload用于保存交易内容,包括合约相关信息和合约参数,所述合约相关信息包括合约名称与合约版本号,所述合约参数用于保存上传数据;所述Sign用于保存消息签名。
需要说明的是:如图3所示,所述TxID为交易的唯一标识能有效防止双花的情况发生,而Sign为整个消息的签名,能严明身份来源,防止作恶。
作为更进一步的解决方案,所述密文以结构化数据在区块链上进行存储,存储结构为:Key->Nodes,E(D,K)[密文],其中,Key表示共享数据的存储关键字,通过Key能对数据进行请求,->为指向结构体成员运算符,Nodes表示当前数据对应的可信区块链节点的集合;E(D,K)[密文]表示明文数据通过密文加密序列加密后得到的密文数据。
如图4所示,作为更进一步的解决方案,各客户端还通过加密数据请求步骤来对区块链上的加密数据进行索取与解密:
A1.客户端向区块链节点发送查询请求,
A2.区块链节点解析查询请求,获取查询请求对应的Key,并从本地账本中获取Key对应的数据D;
A3.解析数据D,获取对应的Nodes集合与密文E;
A4.通过Nodes集合,判断当前节点是否属于Nodes集合,若是,则执行解密步骤;若否,则应答客户端当前节点无法解析,并结束访问;
A5.对各区块链节点执行A1-A4步骤;
解密步骤:
B1.节点通过密文解密序列获取步骤,得到密文解密序列;
B2.判断密文解密序列是否合法,若合法,则执行下一步;若不合法,则表示当前节点无法解析,并向客户端应答解析失败,并结束访问;
B3.使用密文解密序列对密文E进行解密,得到明文T,并将明文T向客户端应答,并结束访问。
需要说明的是:密文解密序列获取步骤的核心在于获取Nodes集合中各节点密钥序列所共有的密钥项作为解密密钥,判断密文解密序列是否合法主要是判断解密是否出现error,若出现则表示合法,解密是否出现空,若出现空,则说明数据未加密,即明文。
如图5所示,作为更进一步的解决方案,通过如下步骤获取密文解密序列:
C1.获取Nodes集合,初始化ANS节点集合与密文解密序列KS;其中,所述ANS节点集合通过所有区块链节点构成;
C2.判断ANS节点集合中,节点ANS[i]是否在Nodes集合中;若是,则将节点ANS[i]对应的节点密钥序列进行保留;若否,则进行舍弃;
C3.重复C2步骤,遍历ANS节点集合,得到保留下来的节点密钥序列;
C4.读取保留下来的节点密钥序列中的密钥项,若密钥项均存在于保留下来的节点密钥序列中,则对密钥项进行保留;否则进行舍弃;
C5.重复C4步骤,遍历各密钥项,并将保留下来的密钥项加入密文解密序列KS中;得到密文解密序列KS。
作为更进一步的解决方案,所述客户端密钥序列Keys和密文加密序列中还设置有Keys加密密钥;
所述客户端密钥序列Keys:Keys=[Key1,Key2,Key3....Keyn,KKey], 为异或运算符,n为区块链节点总数,Key1,Key2,Key3....Keyn为密钥项,KKey为Keys加密密钥;
所述密文加密序列:获取各可信区块链节点的节点密钥序列,并求取各节点密钥序列中相同的密钥项,得到密文解密序列;将客户端密钥序列Keys中与密文解密序列相同的密钥项剔除,得到密文加密序列;其中,密文加密序列中包括Keys加密密钥。
需要说明的是:由于节点密钥序列与客户端密钥序列Keys只相差一个缺省项,故各节点很容易通过反算将缺省项给算出来,从而导致加密失效;故本实施例还设置有Keys加密密钥,即添加一个客户端独有的密钥KKey,当进行加密时,客户端通过“原始密文加密序列+Keys加密密钥”对数据进行加密,故各节点通过反算得到的是“原始密文加密序列+Keys加密密钥”的组合,即:客户端M的客户端密钥序列为[KA,KB,Kc];根据 可得,A节点、B节点和C节点对应的节点密钥序列分别为[KA,KB],[KB,Kc]和[Kc,KA];先将数据分享给A节点,便对明文D使用Kc加密:则密文/>Kc;对密文E(D,Kc)进行解密,则/>即得到明文D;反算时:进而得到密钥Kc。但是,加入Keys加密密钥后,密文反算时:/>故只能得到/>而Kc与KKey两者对于节点来讲都是未知的,从而保护密钥不被破解。
作为更进一步的解决方案,所述密钥序列Keys和各节点密钥序列中还设置有明文加密密钥;
所述客户端密钥序列Keys:Keys=[Key1,Key2,Key3....Keyn,SKey], 为异或运算符,n为区块链节点总数,Key1,Key2,Key3....Keyn为密钥项,SKey为明文加密密钥;
所述节点密钥序列: *表示缺省的密钥项;/>中的n表示缺省的密钥项编号,Key1,Key2,Key3....Keyn为密钥项;SKey为明文加密密钥。
需要说明的是:如图2所示,在客户端将数据分配给所有节点的情况中,由于此时共有密钥项为空,则无法对数据进行加密,以明文形式进行传输;但我们希望数据仅在节点内部进行共享,节点外部查看到的依然是密文;故本实施例在密钥序列Keys和各节点密钥序列中还设置有明文加密密钥,在客户端将数据分配给所有节点的情况中,此时共有密钥项为SKey;即各节点均拥有密钥SKey,故通过密钥SKey对数据进行加密,从而实现了明文加密。
此外,明文加密密钥与Keys加密密钥能同时进行运用,互相不构成干扰。
作为更进一步的解决方案,一种装置,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上述任一项所述的方法。
一种计算机可读存储介质,所述计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上述任一权项所述的方法。
以上仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种面向区块链的数据加密共享方法,部署于区块链上,其特征在于,所述区块链包括若干客户端和若干区块链节点,各客户端分别与各节点建立通信链路,并通过数据加密上传步骤将客户端数据进行加密并上传至区块链;所述数据加密上传步骤的子步骤包括密钥生成步骤、密文生成步骤和密文上传步骤;所述密钥生成步骤用于生成加密密钥,所述密文生成步骤用于对数据明文通过加密密钥进行加密,并获得密文;所述密文上传步骤将密文上传至区块链上,其中,所述密钥生成步骤的子步骤包括:
客户端密钥序列生成:通过密钥生成算法,生成客户端密钥序列Keys;其中,Keys=[Key1,Key2,Key3....Keyn], 为异或运算符,n为区块链节点总数,Key1,Key2,Key3....Keyn为密钥项;
节点密钥序列生成:通过密钥生成算法,生成与客户端密钥序列Keys对应的n条缺省密钥序列并作为节点密钥序列;其中,/> *表示缺省的密钥项;/>中的n表示缺省的密钥项编号;
密钥序列分配:客户端保存完整的客户端密钥序列Keys,各节点密钥序列随机分配给各区块链节点;其中,向各区块链节点分配的节点密钥序列均不相同;
所述密文生成步骤:客户端设置Nodes集合,所述Nodes集合用于保存客户端指定的可信区块链节点;获取各可信区块链节点的节点密钥序列,并求取各节点密钥序列中相同的密钥项,得到密文解密序列;将客户端密钥序列Keys与密文解密序列相同的密钥项剔除,得到密文加密序列;将密文加密序列对待上传的明文数据进行加密,得到密文;将密文存储至区块链上;所述可信区块链节点通过自身的节点密钥序列进行组合,得到密文解密序列,并对密文进行解密与查看。
2.根据权利要求1所述的一种面向区块链的数据加密共享方法,其特征在于,所述密文上传步骤:客户端发送交易至区块链,完成密文上传;所述交易包括TxID、Payload和Sign,其中,所述TxID为交易的唯一标识;所述Payload用于保存交易内容,包括合约相关信息和合约参数,所述合约相关信息包括合约名称与合约版本号,所述合约参数用于保存上传数据;所述Sign用于保存消息签名。
3.根据权利要求2所述的一种面向区块链的数据加密共享方法,其特征在于,所述密文以结构化数据在区块链上进行存储,存储结构为:Key->Nodes,E(D,K)[密文],其中,Key表示共享数据的存储关键字,通过Key能对数据进行请求,->为指向结构体成员运算符,Nodes表示当前数据对应的可信区块链节点的集合;E(D,K)[密文]表示明文数据通过密文加密序列加密后得到的密文数据。
4.根据权利要求3所述的一种面向区块链的数据加密共享方法,其特征在于,各客户端还通过加密数据请求步骤来对区块链上的加密数据进行索取与解密:
A1.客户端向区块链节点发送查询请求,
A2.区块链节点解析查询请求,获取查询请求对应的Key,并从本地账本中获取Key对应的数据D;
A3.解析数据D,获取对应的Nodes集合与密文E;
A4.通过Nodes集合,判断当前节点是否属于Nodes集合,若是,则执行解密步骤;若否,则应答客户端当前节点无法解析,并结束访问;
A5.对各区块链节点执行A1-A4步骤;
解密步骤:
B1.节点通过密文解密序列获取步骤,得到密文解密序列;
B2.判断密文解密序列是否合法,若合法,则执行下一步;若不合法,则表示当前节点无法解析,并向客户端应答解析失败,并结束访问;
B3.使用密文解密序列对密文E进行解密,得到明文T,并将明文T向客户端应答,并结束访问。
5.根据权利要求4所述的一种面向区块链的数据加密共享方法,其特征在于,通过如下步骤获取密文解密序列:
C1.获取Nodes集合,初始化ANS节点集合与密文解密序列KS;其中,所述ANS节点集合通过所有区块链节点构成;
C2.判断ANS节点集合中,节点ANS[i]是否在Nodes集合中;若是,则将节点ANS[i]对应的节点密钥序列进行保留;若否,则进行舍弃;
C3.重复C2步骤,遍历ANS节点集合,得到保留下来的节点密钥序列;
C4.读取保留下来的节点密钥序列中的密钥项,若密钥项均存在于保留下来的节点密钥序列中,则对密钥项进行保留;否则进行舍弃;
C5.重复C4步骤,遍历各密钥项,并将保留下来的密钥项加入密文解密序列KS中;得到密文解密序列KS。
6.根据权利要求1所述的一种面向区块链的数据加密共享方法,其特征在于,所述客户端密钥序列Keys和密文加密序列中还设置有Keys加密密钥;
所述客户端密钥序列Keys:Keys=[Key1,Key2,Key3....Keyn,KKey],
所述密文加密序列:获取各可信区块链节点的节点密钥序列,并求取各节点密钥序列中相同的密钥项,得到密文解密序列;将客户端密钥序列Keys中与密文解密序列相同的密钥项剔除,得到密文加密序列;其中,密文加密序列中包括Keys加密密钥。
7.根据权利要求1所述的一种面向区块链的数据加密共享方法,其特征在于,所述密钥序列Keys和各节点密钥序列中还设置有明文加密密钥;
所述客户端密钥序列Keys:Keys=[Key1,Key2,Key3....Keyn,SKey], SKey为明文加密密钥;
所述节点密钥序列:
8.一种装置,其特征在于,所述装置包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至权利要求7中任一项所述的方法。
9.一种计算机可读存储介质,所述计算机可读存储介质存储指令,其特征在于,所述指令在由处理器执行时使得所述处理器执行如权利要求1至7中任一权项所述的方法。
CN202210623984.3A 2022-06-02 2022-06-02 一种面向区块链的数据加密共享方法、装置及存储介质 Active CN115001824B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210623984.3A CN115001824B (zh) 2022-06-02 2022-06-02 一种面向区块链的数据加密共享方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210623984.3A CN115001824B (zh) 2022-06-02 2022-06-02 一种面向区块链的数据加密共享方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN115001824A CN115001824A (zh) 2022-09-02
CN115001824B true CN115001824B (zh) 2024-03-12

Family

ID=83032094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210623984.3A Active CN115001824B (zh) 2022-06-02 2022-06-02 一种面向区块链的数据加密共享方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN115001824B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007181011A (ja) * 2005-12-28 2007-07-12 Pro Secure Co Ltd データ共有装置
CN103220271A (zh) * 2013-03-15 2013-07-24 福建联迪商用设备有限公司 密钥下载方法、管理方法、下载管理方法及装置和系统
CN111935080A (zh) * 2020-06-24 2020-11-13 布比(北京)网络技术有限公司 区块链的数据共享方法、装置、计算机设备和存储介质
CN112019323A (zh) * 2019-05-30 2020-12-01 深圳拓邦股份有限公司 数据加密、解密方法及装置、存储介质及电子设备
CN114268441A (zh) * 2022-03-03 2022-04-01 成都量安区块链科技有限公司 一种量子安全应用方法、客户端装置、服务器装置与系统
CN114389794A (zh) * 2020-10-16 2022-04-22 中创为(成都)量子通信技术有限公司 量子云密钥协商方法、装置及系统、量子及量子云服务器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007181011A (ja) * 2005-12-28 2007-07-12 Pro Secure Co Ltd データ共有装置
CN103220271A (zh) * 2013-03-15 2013-07-24 福建联迪商用设备有限公司 密钥下载方法、管理方法、下载管理方法及装置和系统
CN112019323A (zh) * 2019-05-30 2020-12-01 深圳拓邦股份有限公司 数据加密、解密方法及装置、存储介质及电子设备
CN111935080A (zh) * 2020-06-24 2020-11-13 布比(北京)网络技术有限公司 区块链的数据共享方法、装置、计算机设备和存储介质
CN114389794A (zh) * 2020-10-16 2022-04-22 中创为(成都)量子通信技术有限公司 量子云密钥协商方法、装置及系统、量子及量子云服务器
CN114268441A (zh) * 2022-03-03 2022-04-01 成都量安区块链科技有限公司 一种量子安全应用方法、客户端装置、服务器装置与系统

Also Published As

Publication number Publication date
CN115001824A (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
JP6968223B2 (ja) 量子鍵配送のための方法、装置、及びシステム
CN109120639B (zh) 一种基于区块链的数据云存储加密方法及系统
US11108753B2 (en) Securing files using per-file key encryption
CN108768633B (zh) 实现区块链中信息共享的方法及装置
CN109145612B (zh) 基于区块链实现防数据篡改、用户共谋的云数据共享方法
WO2019061983A1 (zh) 区块链数据上传方法、系统、计算机系统及存储介质
US20230254129A1 (en) Key management for multi-party computation
US7266705B2 (en) Secure transmission of data within a distributed computer system
CN111294349B (zh) 用于物联网设备数据共享的方法及装置
CN113987554B (zh) 获取数据授权的方法、装置及系统
CN113360925A (zh) 电力信息物理系统中可信数据的存储和访问方法及系统
CN114239046A (zh) 数据共享方法
CN112118245B (zh) 密钥管理方法、系统和设备
Zhang et al. Cerberus: Privacy-preserving computation in edge computing
Kanimozhi et al. Secure sharing of IOT data in cloud environment using attribute-based encryption
CN115865461B (zh) 一种高性能计算集群中分发数据的方法和系统
CN115001824B (zh) 一种面向区块链的数据加密共享方法、装置及存储介质
CN106790185B (zh) 基于cp-abe的权限动态更新集中信息安全访问方法和装置
Koppaka et al. ElGamal algorithm with hyperchaotic sequence to enhance security of cloud data
CN114760047A (zh) 一种量子密钥管理方法、装置及系统
Raja et al. An enhanced study on cloud data services using security technologies
CN115484031B (zh) 基于sgx的无可信第三方云存储密文去重方法及系统
CN113656365B (zh) 一种基于区块链的数据共享方法及系统
CN117176360A (zh) 一种基于区块链的数据流通方法
Li et al. Searchable Proxy Re-Encryption Data Sharing Scheme Based on Consortium Chain

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
GR01 Patent grant
GR01 Patent grant