CN111858519A - 一种区块链上机密数据分享的系统及方法 - Google Patents
一种区块链上机密数据分享的系统及方法 Download PDFInfo
- Publication number
- CN111858519A CN111858519A CN202010661043.XA CN202010661043A CN111858519A CN 111858519 A CN111858519 A CN 111858519A CN 202010661043 A CN202010661043 A CN 202010661043A CN 111858519 A CN111858519 A CN 111858519A
- Authority
- CN
- China
- Prior art keywords
- key
- data
- subsystem
- transaction
- confidential 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- 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
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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
Abstract
本发明公开了一种区块链上机密数据分享的系统及方法,包括数据加密子系统、密钥分发子系统、元数据目录子系统、密钥收集子系统、数据解密子系统和机密数据存储子系。本发明属于区块链技术领域,具体是一种区块链上机密数据分享的系统及方法,将密钥分割后,保存在区块链上,可避免丢失,提供创新性的数据使用和监管机制,数据提供方将数据加密后,将密钥分片分发给各个持有者,密钥分片持有者为数据利益相关者或数据监管机构,在使用方需要赢取加密数据时,需要获得各个持有者的审批通过,通过此种机制,可清晰的记录数据由谁提供,由谁监管,由谁使用,所有历史记录不可更改,可有效保障在数字经济时代,商业及个人数据的合理、合法交换使用。
Description
技术领域
本发明属于区块链技术领域,具体是指一种区块链上机密数据分享的系统及方法。
背景技术
现有技术中,存储在区块链上的机密数据仅仅是用对称加密或者非对称加密技术将其加密后,保存在区块链上。这样的数据保密机制有两个问题:密钥的保存问题。我们可以按密钥的保存位置分开阐述。将密钥保存在区块链以外:在我们使用加密算法将机密数据保存在区块链上的时候,我们一般会将密钥保存在一个区块链以外的一个私密的地方,但一旦密钥丢失,我们保存在区块链的机密数据将无法读取。如果密钥被恶意的第三方窃取,则保存在区块链上的数据将会被解密。将密钥保存在区块链上:如果我们为防止密钥丢失,将其也保存在区块链上,由于区块链的技术特性,我们为防止密钥被非授权者非法读取,则要将密钥再次加密,那样的话,则会引申出加密密钥后,用于解密被加密“密钥”的“密钥”如何保存的递归问题。
机密数据读取行为的日志存证问题。将机密数据通过加密算法保存在区块链上后,理论上,被加密后的数据可以通过区块浏览器在各个分布式节点上读取,这种读取行为不会被记录。假设机密数据的加密密钥已经被窃取,则只需要通过区块浏览器读取加密数据,然后再解密就可获取机密数据,整个过程没有记录,事后也无法从技术上进行追踪。
发明内容
针对上述情况,为克服现有技术的缺陷,本发明提供一种区块链上机密数据分享的系统及方法,将密钥分割后,保存在区块链上,可避免丢失,提供创新性的数据使用和监管机制,数据提供方将数据加密后,将密钥分片分发给各个持有者,密钥分片持有者为数据利益相关者或数据监管机构,在使用方需要赢取加密数据时,需要获得各个持有者的审批通过,通过此种机制,可以清晰的记录数据由谁提供,由谁监管,由谁使用,所有历史记录不可更改,可以有效保障在数字经济时代,商业及个人数据的合理、合法交换使用。
本发明采取的技术方案如下:本发明一种区块链上机密数据分享的系统及方法,包括数据加密子系统、密钥分发子系统、元数据目录子系统、密钥收集子系统、数据解密子系统和机密数据存储子系统,所述数据加密子系统与密钥分发子系统通信相连,所述元数据目录子系统与密钥分发子系统通信相连,所述密钥收集子系统与元数据目录子系统通信相连,所述数据解密子系统与密钥收集子系统通信相连,所述机密数据存储子系统与数据解密子系统通信相连。
进一步地,所述数据加密子系统负责将待保存的机密数据利用对称加密算法或者非对称加密算法进行加密,将密钥进行分割,并根据加密数据,产生相应的元数据信息,所述数据加密子系统的输入为:待加密数据、加密算法标识 (对称加密算法或非对称加密算法,如:RSA、SM2、DES、SM4等)、密钥分割总片数、密钥合成最小片数、分片密钥持有者对应区块链账户地址集合;所述数据加密子系统的输出为:加密数据、密钥分片集合、元数据封装体。
进一步地,所述密钥分发子系统负责将数据加密子系统输出的加密数据、密钥分片封装体集合、元数据封装体等信息对过调用智能合约,最终以交易 (Transaction)的形式写在区块链上;所述密钥分发子系统的输入为:加密数据、密钥分片集合、元数据封装体、分片密钥持有者对应区块链账户地址集合;所述密钥分发子系统的输出为:8位无符号整数,调用成功返回0,否则返回1。
进一步地,所述元数据目录子系统提供机密数据索引服务,客户端可以跟据机密数据在系统中的UUID或者机密数据原文的消息摘要进行检索,如果存在与检索条件相匹配的记录,则返回机密数据的元数据信息;所述元数据目录子系统的输入为:检索类型标识(告知子系统按UUID或消息摘要进行检索,枚举值为:UUID或DIGEST)、检索数据(取决于检索类型标识,可以为UUID 的值或机密数据原文消息摘要的值);所述元数据目录子系统的输出为:加密数据索引交易编号、密钥持有者对应分发交易编号集合。
进一步地,所述密钥收集子系统负责将机密数据密钥获取请求转换为区块链上相应智能合约的调用,通知机密数据各个相关密钥分片的持有方,获取各个密钥分片,并将密钥分片的获取结果,返回给调用客户端(密钥分片的获取成功与否取决于各密钥分片持有方的决策策略);所述密钥收集子系统的输入为:请求者公钥,密钥持有者对应分发交易编号集合;所述密钥收集子系统的输出为:密钥分片集合(返回的各个密钥分片将以请求者公钥进行加密)。
进一步地,所述数据解密子系统负责将已加密的机密数据还原为原文;所述数据解密子系统的输入为:加密数据、解密请求者私钥、已加密机密数据的密钥分片集合;所述数据解密子系统的输出为:机密数据解密后原文内容。
进一步地,所述机密数据存储子系统负责保存已加密的机密数据;所述机密数据存储子系统的输入为:检索类型标识(告知子系统按UUID或消息摘要进行检索,枚举值为:UUID或DIGEST)、检索数据(取决于检索类型标识,可以为UUID的值或机密数据原文消息摘要的值);所述机密数据存储子系统的输出为:已经加密的机密数据内容。下表为上述子系统参数说明表:
本发明一种区块链上机密数据分享的方法,其特征在于,包括如下步骤:
步骤一、数据加密保存:客户端将机密数据传递给本机的数据加密子系统,数据加密子系统将数据加密,并将加密密钥使用特定算法分割成多片,然后使用各个持有人帐户的公钥将其对应待持有的密钥分片加密,加密完成后传递给部署在本机的密钥分发子系统,将密钥分片数据写入区块链,可以包含以下步骤:
步骤101:读取机密数据,获取密钥分片持有者的公钥集合,确定加密算法,选定对称加密算法SM4、DES为代表,选定非对称加密算法为SM2、RSA为代表;
步骤101:判断选用的是对称加密算法还是非对称加密算法,跳转到相应的密钥处理环节,如果是非对称加密算法跳转到步骤103,否则为对称加密算法,跳转到步骤104;
步骤103:生成加密算法对应的“公钥、私钥密钥对”供加密机密数据使用;
步骤104:生成加密算法对应的随机密码,供加密机密数据使用;
步骤105:生成全局唯一的UUID,用于和机密绑定,以便于建立索引,供后续检索使用;将机密数据进行加密,如果选择的非对称加密算法,则使用步骤103生成的公钥进行加密,如果选择的对称加密算法,则使用步骤104生成的密钥进行加密;
步骤106:使用密钥分割算法将加密机密数据的密钥进行分割,本方法选定Shamir’s Secret Sharing分割算法为代表,分割的份数与密钥分片持有者公钥集合数量相等,在分割时,同时设置还原密钥时的最小分片数;
步骤107:将密钥分片使用持有者的公钥依次进行加密,既把分片1使用持有者1的公钥加密,把分片2使用持有者2的公钥加密,以此类推;
步骤108:跟据密钥分片数量,机密数据保存者依次调用区块链上的智能合约,将已经加密的密钥分片以交易的形式写入区块链,交易的源地址是机密数据保存者的区块链账户地址,交易的目标地址是密钥分片持有者的区块链账户地址,加密的密钥分片数据使用Base64编码后,以交易附加数据的形式保存在交易中;
步骤109:完成步骤108的执行后,机密数据持有者将上述交易的交易编号集合、密钥分割总片数、密钥合成最小片数、加密算法、分片密钥持有者对应区块链账户地址的数据集合等信息封装为机密数据的元数据,机密数据保存者调用区块链上的智能合约,将机密数据元数据以交易的形式写入区块链,交易的源地址、目标地址均是机密数据保存者的区块链账户地址,元数据使用 Base64编码后,以交易附加数据的形式保存在交易中;
步骤110:生成元数据索引,首先计算机密数据加密后的消息摘要值,本方法选定消息摘要算法SHA256为代表,然后将机密数据的UUID、计算完成的消息摘要值、步骤109中执行完成后的交易编号等信息保存在机密数据元数据目录子系统中,选定关系形数据库为元数据目录子系统的底层保存方式;
步骤111:将已经加密的机密数据保存在机密数据存储子系统中;
步骤112:退出;
步骤二、数据解密读取:机密数据请求者首先利用客户端查询元数据目录子系,获取机密数据的元数据,元数据获取完成后,将元数据传递给部署在本机的密钥收集子系统,待密钥分片收集完成后,调用部署在本机的数据解密子系统,将机密数据进行解密,可以包含以下步骤:
步骤201:根据已加密机密数据的消息摘要,或者机密数据的UUID,进行数据检索;
步骤202:查询元数据目录子系统中的对应元数据,如果有相应的索引元数据,则执行后续操作,否则,转到步骤212,退出;
步骤203:从元数据目录子系统中获取元数据,从机密数据存储子系统中获取已加密的机密数据;
步骤204:读取元数据,获取所有密钥分片持有者的区块链地址;
步骤205:跟据密钥分片持有者数量,机密数据请求者依次调用区块链上的智能合约,将密钥分片收集请求以交易的形式写入区块链,交易的源地址是机密数据请求者的区块链账户地址,交易的目标地址是密钥分片持有者的区块链账户地址;
步骤206:密钥分片的持有者跟据请求者的交易信息,读取对应机密数据的元数据,获取自己所持密钥分片对应的区块链交易编号;
步骤207:密钥分片的持有者跟据请求者的交易信息,进行判断审批,审批的逻辑由具体的业务规则确定,在本方法中不加以阐述,如果审批通过,则读取区块链上的密钥分片,使用持有者的私钥解密,然后将解密后的内容用请求者的公钥加密,将加密后的密钥分片以交易的形式写入区块链,交易的源地址是密钥分片持有者的区块链账户地址,交易的目标地址是密钥分片请求者的区块链账户地址,加密的密钥分片数据使用Base64编码后,以交易附加数据的形式保存在交易中,如果审批不通过,则将“REJECT”字符串以交易的形式写入区块链,交易的源地址是密钥分片持有者的区块链账户地址,交易的目标地址是密钥分片请求者的区块链账户地址,“REJECT”以交易附加数据的形式保存在交易中;
步骤208:密钥请求者读取区块链上的审批交易,如果交易的附加数据为“REJECT”字符串,则忽略该交易,否则,读取交易的密钥分片附加数据,使用请求者的私钥进行解密,将解密后的密钥分片暂存在程序的临时内存中;
步骤209:统计临时内存中的密钥分片数是否大于或等于元数据中标示的最小密钥分片合成数。如果大于或等于,则执行后续步骤310,否则,转到步骤312,退出;
步骤210:跟据收集的密钥分片通过密钥分割算法进行密钥合成,选定密钥分割算法Shamir’s Secret Sharing为代表;
步骤211:使用合成的密钥解密已加密的机密数据,获取机密数据原内容;
步骤212:退出。
采用上述结构本发明取得的有益效果如下:本方案一种区块链上机密数据分享的系统及方法,将密钥分割后,保存在区块链上,可避免丢失,提供创新性的数据使用和监管机制,数据提供方将数据加密后,将密钥分片分发给各个持有者,密钥分片持有者为数据利益相关者或数据监管机构,在使用方需要赢取加密数据时,需要获得各个持有者的审批通过,通过此种机制,可以清晰的记录数据由谁提供,由谁监管,由谁使用,所有历史记录不可更改,可以有效保障在数字经济时代,商业及个人数据的合理、合法交换使用。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一种区块链上机密数据分享的系统及方法,包括数据加密子系统、密钥分发子系统、元数据目录子系统、密钥收集子系统、数据解密子系统和机密数据存储子系统,所述数据加密子系统与密钥分发子系统通信相连,所述元数据目录子系统与密钥分发子系统通信相连,所述密钥收集子系统与元数据目录子系统通信相连,所述数据解密子系统与密钥收集子系统通信相连,所述机密数据存储子系统与数据解密子系统通信相连。
所述数据加密子系统负责将待保存的机密数据利用对称加密算法或者非对称加密算法进行加密,将密钥进行分割,并根据加密数据,产生相应的元数据信息,所述数据加密子系统的输入为:待加密数据、加密算法标识(对称加密算法或非对称加密算法,如:RSA、SM2、DES、SM4等)、密钥分割总片数、密钥合成最小片数、分片密钥持有者对应区块链账户地址集合;所述数据加密子系统的输出为:加密数据、密钥分片集合、元数据封装体。
所述密钥分发子系统负责将数据加密子系统输出的加密数据、密钥分片封装体集合、元数据封装体等信息对过调用智能合约,最终以交易 (Transaction)的形式写在区块链上;所述密钥分发子系统的输入为:加密数据、密钥分片集合、元数据封装体、分片密钥持有者对应区块链账户地址集合;所述密钥分发子系统的输出为:8位无符号整数,调用成功返回0,否则返回1。
所述元数据目录子系统提供机密数据索引服务,客户端可以跟据机密数据在系统中的UUID或者机密数据原文的消息摘要进行检索,如果存在与检索条件相匹配的记录,则返回机密数据的元数据信息;所述元数据目录子系统的输入为:检索类型标识(告之子系统按UUID或消息摘要进行检索,枚举值为: UUID或DIGEST)、检索数据(取决于检索类型标识,可以为UUID的值或机密数据原文消息摘要的值);所述元数据目录子系统的输出为:加密数据索引交易编号、密钥持有者对应分发交易编号集合。
所述密钥收集子系统负责将机密数据密钥获取请求转换为区块链上相应智能合约的调用,通知机密数据各个相关密钥分片的持有方,获取各个密钥分片,并将密钥分片的获取结果,返回给调用客户端(密钥分片的获取成功与否取决于各密钥分片持有方的决策策略);所述密钥收集子系统的输入为:请求者公钥,密钥持有者对应分发交易编号集合;所述密钥收集子系统的输出为:密钥分片集合(返回的各个密钥分片将以请求者公钥进行加密)。
所述数据解密子系统负责将已加密的机密数据还原为原文;所述数据解密子系统的输入为:加密数据、解密请求者私钥、已加密机密数据的密钥分片集合;所述数据解密子系统的输出为:机密数据解密后原文内容。
所述机密数据存储子系统负责保存已加密的机密数据;所述机密数据存储子系统的输入为:检索类型标识(告知子系统按UUID或消息摘要进行检索,枚举值为:UUID或DIGEST)、检索数据(取决于检索类型标识,可以为UUID 的值或机密数据原文消息摘要的值);所述机密数据存储子系统的输出为:已经加密的机密数据内容。下表为上述子系统参数说明表:
本发明一种区块链上机密数据分享的方法,其特征在于,包括如下步骤:
步骤一、数据加密保存:客户端将机密数据传递给本机的数据加密子系统,数据加密子系统将数据加密,并将加密密钥使用特定算法分割成多片,然后使用各个持有人帐户的公钥将其对应待持有的密钥分片加密,加密完成后传递给部署在本机的密钥分发子系统,将密钥分片数据写入区块链,可以包含以下步骤:
步骤101:读取机密数据,获取密钥分片持有者的公钥集合,确定加密算法,选定对称加密算法SM4、DES为代表,选定非对称加密算法为SM2、RSA为代表;
步骤101:判断选用的是对称加密算法还是非对称加密算法,跳转到相应的密钥处理环节,如果是非对称加密算法跳转到步骤103,否则为对称加密算法,跳转到步骤104;
步骤103:生成加密算法对应的“公钥、私钥密钥对”供加密机密数据使用;
步骤104:生成加密算法对应的随机密码,供加密机密数据使用;
步骤105:生成全局唯一的UUID,用于和机密绑定,以便于建立索引,供后续检索使用;将机密数据进行加密,如果选择的非对称加密算法,则使用步骤103生成的公钥进行加密,如果选择的对称加密算法,则使用步骤104生成的密钥进行加密;
步骤106:使用密钥分割算法将加密机密数据的密钥进行分割,本方法选定Shamir’s Secret Sharing分割算法为代表,分割的份数与密钥分片持有者公钥集合数量相等,在分割时,同时设置还原密钥时的最小分片数;
步骤107:将密钥分片使用持有者的公钥依次进行加密,既把分片1使用持有者1的公钥加密,把分片2使用持有者2的公钥加密,以此类推;
步骤108:跟据密钥分片数量,机密数据保存者依次调用区块链上的智能合约,将已经加密的密钥分片以交易的形式写入区块链,交易的源地址是机密数据保存者的区块链账户地址,交易的目标地址是密钥分片持有者的区块链账户地址,加密的密钥分片数据使用Base64编码后,以交易附加数据的形式保存在交易中;
步骤109:完成步骤108的执行后,机密数据持有者将上述交易的交易编号集合、密钥分割总片数、密钥合成最小片数、加密算法、分片密钥持有者对应区块链账户地址的数据集合等信息封装为机密数据的元数据,机密数据保存者调用区块链上的智能合约,将机密数据元数据以交易的形式写入区块链,交易的源地址、目标地址均是机密数据保存者的区块链账户地址,元数据使用 Base64编码后,以交易附加数据的形式保存在交易中;
步骤110:生成元数据索引,首先计算机密数据加密后的消息摘要值,本方法选定消息摘要算法SHA256为代表,然后将机密数据的UUID、计算完成的消息摘要值、步骤109中执行完成后的交易编号等信息保存在机密数据元数据目录子系统中,选定关系形数据库为元数据目录子系统的底层保存方式;
步骤111:将已经加密的机密数据保存在机密数据存储子系统中;
步骤112:退出;
步骤二、数据解密读取:机密数据请求者首先利用客户端查询元数据目录子系,获取机密数据的元数据,元数据获取完成后,将元数据传递给部署在本机的密钥收集子系统,待密钥分片收集完成后,调用部署在本机的数据解密子系统,将机密数据进行解密,可以包含以下步骤:
步骤201:根据已加密机密数据的消息摘要,或者机密数据的UUID,进行数据检索;
步骤202:查询元数据目录子系统中的对应元数据,如果有相应的索引元数据,则执行后续操作,否则,转到步骤212,退出;
步骤203:从元数据目录子系统中获取元数据,从机密数据存储子系统中获取已加密的机密数据;
步骤204:读取元数据,获取所有密钥分片持有者的区块链地址;
步骤205:跟据密钥分片持有者数量,机密数据请求者依次调用区块链上的智能合约,将密钥分片收集请求以交易的形式写入区块链,交易的源地址是机密数据请求者的区块链账户地址,交易的目标地址是密钥分片持有者的区块链账户地址;
步骤206:密钥分片的持有者跟据请求者的交易信息,读取对应机密数据的元数据,获取自己所持密钥分片对应的区块链交易编号;
步骤207:密钥分片的持有者跟据请求者的交易信息,进行判断审批,审批的逻辑由具体的业务规则确定,在本方法中不加以阐述,如果审批通过,则读取区块链上的密钥分片,使用持有者的私钥解密,然后将解密后的内容用请求者的公钥加密,将加密后的密钥分片以交易的形式写入区块链,交易的源地址是密钥分片持有者的区块链账户地址,交易的目标地址是密钥分片请求者的区块链账户地址,加密的密钥分片数据使用Base64编码后,以交易附加数据的形式保存在交易中,如果审批不通过,则将“REJECT”字符串以交易的形式写入区块链,交易的源地址是密钥分片持有者的区块链账户地址,交易的目标地址是密钥分片请求者的区块链账户地址,“REJECT”以交易附加数据的形式保存在交易中;
步骤208:密钥请求者读取区块链上的审批交易,如果交易的附加数据为“REJECT”字符串,则忽略该交易,否则,读取交易的密钥分片附加数据,使用请求者的私钥进行解密,将解密后的密钥分片暂存在程序的临时内存中;
步骤209:统计临时内存中的密钥分片数是否大于或等于元数据中标示的最小密钥分片合成数。如果大于或等于,则执行后续步骤310,否则,转到步骤312,退出;
步骤210:跟据收集的密钥分片通过密钥分割算法进行密钥合成,选定密钥分割算法Shamir’s Secret Sharing为代表;
步骤211:使用合成的密钥解密已加密的机密数据,获取机密数据原内容;
步骤212:退出。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
以上对本发明及其实施方式进行了描述,这种描述没有限制性,只是本发明的实施方式之一,实际的结构并不局限于此。总而言之如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
Claims (8)
1.一种区块链上机密数据分享的系统及方法,其特征在于:包括数据加密子系统、密钥分发子系统、元数据目录子系统、密钥收集子系统、数据解密子系统和机密数据存储子系统,所述数据加密子系统与密钥分发子系统通信相连,所述元数据目录子系统与密钥分发子系统通信相连,所述密钥收集子系统与元数据目录子系统通信相连,所述数据解密子系统与密钥收集子系统通信相连,所述机密数据存储子系统与数据解密子系统通信相连。
2.根据权利要求1所述的一种区块链上机密数据分享的系统及方法,其特征在于:所述数据加密子系统负责将待保存的机密数据利用对称加密算法或者非对称加密算法进行加密,将密钥进行分割,并根据加密数据,产生相应的元数据信息,所述数据加密子系统的输入为:待加密数据、加密算法标识、密钥分割总片数、密钥合成最小片数、分片密钥持有者对应区块链账户地址集合;所述数据加密子系统的输出为:加密数据、密钥分片集合、元数据封装体。
3.根据权利要求2所述的一种区块链上机密数据分享的系统及方法,其特征在于:所述密钥分发子系统负责将数据加密子系统输出的加密数据、密钥分片封装体集合、元数据封装体等信息对过调用智能合约,最终以交易的形式写在区块链上;所述密钥分发子系统的输入为:加密数据、密钥分片集合、元数据封装体、分片密钥持有者对应区块链账户地址集合;所述密钥分发子系统的输出为:8位无符号整数,调用成功返回0,否则返回1。
4.根据权利要求3所述的一种区块链上机密数据分享的系统及方法,其特征在于:所述元数据目录子系统提供机密数据索引服务,客户端可以跟据机密数据在系统中的UUID或者机密数据原文的消息摘要进行检索,如果存在与检索条件相匹配的记录,则返回机密数据的元数据信息;所述元数据目录子系统的输入为:检索类型标识、检索数据;所述元数据目录子系统的输出为:加密数据索引交易编号、密钥持有者对应分发交易编号集合。
5.根据权利要求4所述的一种区块链上机密数据分享的系统及方法,其特征在于:所述密钥收集子系统负责将机密数据密钥获取请求转换为区块链上相应智能合约的调用,通知机密数据各个相关密钥分片的持有方,获取各个密钥分片,并将密钥分片的获取结果,返回给调用客户端;所述密钥收集子系统的输入为:请求者公钥,密钥持有者对应分发交易编号集合;所述密钥收集子系统的输出为:密钥分片集合。
6.根据权利要求5所述的一种区块链上机密数据分享的系统及方法,其特征在于:所述数据解密子系统负责将已加密的机密数据还原为原文;所述数据解密子系统的输入为:加密数据、解密请求者私钥、已加密机密数据的密钥分片集合;所述数据解密子系统的输出为:机密数据解密后原文内容。
7.根据权利要求6所述的一种区块链上机密数据分享的系统及方法,其特征在于:所述机密数据存储子系统负责保存已加密的机密数据;所述机密数据存储子系统的输入为:检索类型标识、检索数据;所述机密数据存储子系统的输出为:已经加密的机密数据内容。
8.一种区块链上机密数据分享的方法,其特征在于,包括如下步骤:
步骤一、数据加密保存:客户端将机密数据传递给本机的数据加密子系统,数据加密子系统将数据加密,并将加密密钥使用特定算法分割成多片,然后使用各个持有人帐户的公钥将对应待持有的密钥分片加密,加密完成后传递给部署在本机的密钥分发子系统,将密钥分片数据写入区块链,可以包含以下步骤:
步骤101:读取机密数据,获取密钥分片持有者的公钥集合,确定加密算法,选定对称加密算法SM4、DES为代表,选定非对称加密算法为SM2、RSA为代表;
步骤101:判断选用的是对称加密算法还是非对称加密算法,跳转到相应的密钥处理环节,如果是非对称加密算法跳转到步骤103,否则为对称加密算法,跳转到步骤104;
步骤103:生成加密算法对应的“公钥、私钥密钥对”供加密机密数据使用;
步骤104:生成加密算法对应的随机密码,供加密机密数据使用;
步骤105:生成全局唯一的UUID,用于和机密绑定,以便于建立索引,供后续检索使用;将机密数据进行加密,如果选择的非对称加密算法,则使用步骤103生成的公钥进行加密,如果选择的对称加密算法,则使用步骤104生成的密钥进行加密;
步骤106:使用密钥分割算法将加密机密数据的密钥进行分割,本方法选定Shamir’sSecret Sharing分割算法为代表,分割的份数与密钥分片持有者公钥集合数量相等,在分割时,同时设置还原密钥时的最小分片数;
步骤107:将密钥分片使用持有者的公钥依次进行加密,既把分片1使用持有者1的公钥加密,把分片2使用持有者2的公钥加密,以此类推;
步骤108:跟据密钥分片数量,机密数据保存者依次调用区块链上的智能合约,将已经加密的密钥分片以交易的形式写入区块链,交易的源地址是机密数据保存者的区块链账户地址,交易的目标地址是密钥分片持有者的区块链账户地址,加密的密钥分片数据使用Base64编码后,以交易附加数据的形式保存在交易中;
步骤109:完成步骤108的执行后,机密数据持有者将上述交易的交易编号集合、密钥分割总片数、密钥合成最小片数、加密算法、分片密钥持有者对应区块链账户地址的数据集合等信息封装为机密数据的元数据,机密数据保存者调用区块链上的智能合约,将机密数据元数据以交易的形式写入区块链,交易的源地址、目标地址均是机密数据保存者的区块链账户地址,元数据使用Base64编码后,以交易附加数据的形式保存在交易中;
步骤110:生成元数据索引,首先计算机密数据加密后的消息摘要值,本方法选定消息摘要算法SHA256为代表,然后将机密数据的UUID、计算完成的消息摘要值、步骤109中执行完成后的交易编号等信息保存在机密数据元数据目录子系统中,选定关系形数据库为元数据目录子系统的底层保存方式;
步骤111:将已经加密的机密数据保存在机密数据存储子系统中;
步骤112:退出;
步骤二、数据解密读取:机密数据请求者首先利用客户端查询元数据目录子系,获取机密数据的元数据,元数据获取完成后,将元数据传递给部署在本机的密钥收集子系统,待密钥分片收集完成后,调用部署在本机的数据解密子系统,将机密数据进行解密,可以包含以下步骤:
步骤201:根据已加密机密数据的消息摘要,或者机密数据的UUID,进行数据检索;
步骤202:查询元数据目录子系统中的对应元数据,如果有相应的索引元数据,则执行后续操作,否则,转到步骤212,退出;
步骤203:从元数据目录子系统中获取元数据,从机密数据存储子系统中获取已加密的机密数据;
步骤204:读取元数据,获取所有密钥分片持有者的区块链地址;
步骤205:跟据密钥分片持有者数量,机密数据请求者依次调用区块链上的智能合约,将密钥分片收集请求以交易的形式写入区块链,交易的源地址是机密数据请求者的区块链账户地址,交易的目标地址是密钥分片持有者的区块链账户地址;
步骤206:密钥分片的持有者跟据请求者的交易信息,读取对应机密数据的元数据,获取自己所持密钥分片对应的区块链交易编号;
步骤207:密钥分片的持有者跟据请求者的交易信息,进行判断审批,审批的逻辑由具体的业务规则确定,在本方法中不加以阐述,如果审批通过,则读取区块链上的密钥分片,使用持有者的私钥解密,然后将解密后的内容用请求者的公钥加密,将加密后的密钥分片以交易的形式写入区块链,交易的源地址是密钥分片持有者的区块链账户地址,交易的目标地址是密钥分片请求者的区块链账户地址,加密的密钥分片数据使用Base64编码后,以交易附加数据的形式保存在交易中,如果审批不通过,则将“REJECT”字符串以交易的形式写入区块链,交易的源地址是密钥分片持有者的区块链账户地址,交易的目标地址是密钥分片请求者的区块链账户地址,“REJECT”以交易附加数据的形式保存在交易中;
步骤208:密钥请求者读取区块链上的审批交易,如果交易的附加数据为“REJECT”字符串,则忽略该交易,否则,读取交易的密钥分片附加数据,使用请求者的私钥进行解密,将解密后的密钥分片暂存在程序的临时内存中;
步骤209:统计临时内存中的密钥分片数是否大于或等于元数据中标示的最小密钥分片合成数,如果大于或等于,则执行后续步骤310,否则,转到步骤312,退出;
步骤210:跟据收集的密钥分片通过密钥分割算法进行密钥合成,选定密钥分割算法Shamir’s Secret Sharing为代表;
步骤211:使用合成的密钥解密已加密的机密数据,获取机密数据原内容;
步骤212:退出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010661043.XA CN111858519B (zh) | 2020-07-10 | 2020-07-10 | 一种区块链上机密数据分享的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010661043.XA CN111858519B (zh) | 2020-07-10 | 2020-07-10 | 一种区块链上机密数据分享的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858519A true CN111858519A (zh) | 2020-10-30 |
CN111858519B CN111858519B (zh) | 2023-08-01 |
Family
ID=73152646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010661043.XA Active CN111858519B (zh) | 2020-07-10 | 2020-07-10 | 一种区块链上机密数据分享的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858519B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507387A (zh) * | 2021-02-04 | 2021-03-16 | 北京全息智信科技有限公司 | 一种基于区块链的分布式数据和模型的计算方法及装置 |
CN113468584A (zh) * | 2021-08-31 | 2021-10-01 | 武汉华工安鼎信息技术有限责任公司 | 一种信息管理方法、装置、电子设备及存储介质 |
WO2023198036A1 (zh) * | 2022-04-11 | 2023-10-19 | 华为技术有限公司 | 一种密钥生成方法、装置及设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106548345A (zh) * | 2016-12-07 | 2017-03-29 | 北京信任度科技有限公司 | 基于密钥分割实现区块链私钥保护的方法及系统 |
WO2018137316A1 (zh) * | 2017-01-24 | 2018-08-02 | 上海亿账通区块链科技有限公司 | 基于区块链的安全交易方法、电子装置、系统及存储介质 |
CN108809652A (zh) * | 2018-05-21 | 2018-11-13 | 安徽航天信息有限公司 | 一种基于秘密共享的区块链加密账本 |
CN109672529A (zh) * | 2019-01-07 | 2019-04-23 | 苏宁易购集团股份有限公司 | 一种结合区块链和秘密共享的去匿名化的方法及系统 |
CN110086612A (zh) * | 2019-04-26 | 2019-08-02 | 山大地纬软件股份有限公司 | 一种区块链公私钥备份及丢失找回方法和系统 |
US20190318356A1 (en) * | 2018-04-17 | 2019-10-17 | Coinbase, Inc. | Offline storage system and method of use |
EP3556045A1 (en) * | 2016-12-15 | 2019-10-23 | Luxembourg Institute of Science and Technology (LIST) | P2p network data distribution and retrieval using blockchain log |
US20190342084A1 (en) * | 2018-05-03 | 2019-11-07 | International Business Machines Corporation | Blockchain for on-chain management of off-chain storage |
CN111327597A (zh) * | 2020-01-21 | 2020-06-23 | 暨南大学 | 基于区块链隐私保护和细粒度访问控制的数字取证方法 |
-
2020
- 2020-07-10 CN CN202010661043.XA patent/CN111858519B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106548345A (zh) * | 2016-12-07 | 2017-03-29 | 北京信任度科技有限公司 | 基于密钥分割实现区块链私钥保护的方法及系统 |
EP3556045A1 (en) * | 2016-12-15 | 2019-10-23 | Luxembourg Institute of Science and Technology (LIST) | P2p network data distribution and retrieval using blockchain log |
WO2018137316A1 (zh) * | 2017-01-24 | 2018-08-02 | 上海亿账通区块链科技有限公司 | 基于区块链的安全交易方法、电子装置、系统及存储介质 |
US20190318356A1 (en) * | 2018-04-17 | 2019-10-17 | Coinbase, Inc. | Offline storage system and method of use |
US20190342084A1 (en) * | 2018-05-03 | 2019-11-07 | International Business Machines Corporation | Blockchain for on-chain management of off-chain storage |
CN108809652A (zh) * | 2018-05-21 | 2018-11-13 | 安徽航天信息有限公司 | 一种基于秘密共享的区块链加密账本 |
CN109672529A (zh) * | 2019-01-07 | 2019-04-23 | 苏宁易购集团股份有限公司 | 一种结合区块链和秘密共享的去匿名化的方法及系统 |
CN110086612A (zh) * | 2019-04-26 | 2019-08-02 | 山大地纬软件股份有限公司 | 一种区块链公私钥备份及丢失找回方法和系统 |
CN111327597A (zh) * | 2020-01-21 | 2020-06-23 | 暨南大学 | 基于区块链隐私保护和细粒度访问控制的数字取证方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507387A (zh) * | 2021-02-04 | 2021-03-16 | 北京全息智信科技有限公司 | 一种基于区块链的分布式数据和模型的计算方法及装置 |
CN113468584A (zh) * | 2021-08-31 | 2021-10-01 | 武汉华工安鼎信息技术有限责任公司 | 一种信息管理方法、装置、电子设备及存储介质 |
WO2023198036A1 (zh) * | 2022-04-11 | 2023-10-19 | 华为技术有限公司 | 一种密钥生成方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111858519B (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11552935B2 (en) | Distributed key secret for rewritable blockchain | |
CN111858519B (zh) | 一种区块链上机密数据分享的系统及方法 | |
US20140101438A1 (en) | Structure preserving database encryption method and system | |
US8949603B2 (en) | Database management system and encryption method performed in database | |
CN102891876B (zh) | 云计算环境下分布式数据加密方法及系统 | |
JP2004528615A (ja) | 自動データベース暗号化の方法および装置 | |
CN102906755A (zh) | 利用证书撤销列表的内容控制方法 | |
CN101587479A (zh) | 面向数据库管理系统内核的数据加解密系统及其方法 | |
JPH11143780A (ja) | データベースにおける秘密情報管理方法およびデータベースの秘密情報管理装置 | |
CN111008855B (zh) | 一种基于改进代理重加密的追溯数据访问控制方法 | |
Sesay et al. | A secure database encryption scheme | |
CN106131225A (zh) | 用于医疗病例信息访问的安全系统 | |
CN110413652A (zh) | 一种基于边缘计算的大数据隐私化检索方法 | |
CN111680013A (zh) | 基于区块链的数据共享方法、电子设备和装置 | |
CN109740378B (zh) | 一种抗关键词隐私泄露的安全对索引构造及其检索方法 | |
De Capitani di Vimercati et al. | Supporting concurrency and multiple indexes in private access to outsourced data | |
CN106254510A (zh) | 互联网金融资源整合共享系统 | |
CN117459230A (zh) | 一种基于区块链和密钥共享的密钥托管方法 | |
Luo et al. | Accountable data sharing scheme based on blockchain and SGX | |
Attasena et al. | Sharing-based privacy and availability of cloud data warehouses | |
CN116248289A (zh) | 基于密文属性加密的工业互联网标识解析访问控制方法 | |
CN115277040B (zh) | 一种基于区块链技术的医疗健康数据存储和共享方法及系统 | |
CN100452026C (zh) | 数据一次写入方法和基于该方法的数据库安全管理方法 | |
CN116432193A (zh) | 一种金融数据库数据保护改造方法及其金融数据保护系统 | |
CN115544574A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |