首页> 中国专利> 一种基于可插拔同态加密的区块链同质数据共享方法

一种基于可插拔同态加密的区块链同质数据共享方法

摘要

本发明公开了一种基于可插拔同态加密的区块链同质数据共享方法。该基于可插拔同态加密的区块链同质数据共享方法包括以下步骤:步骤S1:根据用户选择的同态加密算法,生成同态加密算法对应的公私钥;步骤S2:同态加密算法模块将公钥发布到区块链上;步骤S3:同态加密算法模块发送加密储存私钥至密钥存储模块;步骤S4:业务方根据需求输入需要上链的数据,并传输至区块链;步骤S5:业务方将需要共享的数据通过发布的公钥进行加密后上链。本发明的基于可插拔同态加密的区块链同质数据共享方法具有等通用性、易用性以及可插拔性等优点。

著录项

  • 公开/公告号CN112989390A

    专利类型发明专利

  • 公开/公告日2021-06-18

    原文格式PDF

  • 申请/专利权人 深圳前海移联科技有限公司;

    申请/专利号CN202110403414.9

  • 发明设计人 郑子彬;罗少龙;胥勇;

    申请日2021-04-15

  • 分类号G06F21/60(20130101);G06F21/85(20130101);G06F21/62(20130101);

  • 代理机构44589 深圳市中融创智专利代理事务所(普通合伙);

  • 代理人叶垚平

  • 地址 518000 广东省深圳市前海深港合作区前湾一路1号A栋201室

  • 入库时间 2023-06-19 11:29:13

说明书

技术领域

本发明涉及区块链技术领域,具体涉及一种基于可插拔同态加密的区块链同质数据共享方法。

背景技术

数字经济时代下,区块链系统对其中多方协同的业务有重要的意义。当前主流区块链系统中,公有链如比特币、以太坊,联盟链如Hyperledger Fabric、蚂蚁区块链等,都要求用户将数据在区块链上进行完整公开,以此使得数据获得各个记账参与方的信任。这种数据完全公开的共享方式虽然提升了数据的可信程度,但是也大大威胁了数据的隐私性。在多种区块链业务场景中,上链数据既需要上链进行于是暖,也需要保持一定的隐私性。例如,在征信风控场景中,多个征信机构对同个用户的征信评级分数在区块链上进行共享、计算,但是往往各个机构和用户均不希望暴露在相关技术研究中,智能家居普遍通过征求用户同意协议,在征得用户的统一协议后,家居会收集用户的使用数据,然后对其进行处理训练,之后对智能家居的模型进行集中式训练,得到参数后,对用户的家居设备模型参数进行更新,实时更新模型环境,进而得到更好的优化结果。

相关技术研究中,Paillier加密算法是一种公钥加密算法,基于复合剩余类的困难问题,满足加法同态,即密文相乘等于明文相加。现有的技术缺点主要有:(1)缺乏通用性;当前的同态加密技术或区块链上数据的同态加密技术大多依赖特定的算法和特定的业务场景。这意味着每次有新的区块链业务场景出现时,都要针对这一业务场景的数据特点设计新的算法以保证安全,未能实现高度的通用性。(2)缺乏易用性;当前区块链上数据同态加密的共享方式大多需要开发人员对同态加密算法本身有深入的了解,而在业务开发过程中处处需要注意同态加密过程,缺乏易用性。(3)缺乏可插拔性;当前区块链同态加密算法大多是与区块链本身深度耦合的,且计算量较大,当遇到部分不需要同态加密的业务场景时,降低了业务系统性能,其本质原因是缺乏可插拔性。

发明内容

本发明提供了一种基于可插拔同态加密的区块链同质数据共享方法,旨在解决上述问题。

根据本申请实施例提供的一种基于可插拔同态加密的区块链同质数据共享方法,包括以下步骤:

步骤S1:根据用户选择的同态加密算法,生成同态加密算法对应的公私钥;

步骤S2:同态加密算法模块将公钥发布到区块链上;

步骤S3:同态加密算法模块发送加密储存私钥至密钥存储模块;

步骤S4:业务方根据需求输入需要上链的数据,并传输至区块链;

步骤S5:业务方将需要共享的数据通过发布的公钥进行加密后上链。

优选地,所述同态解密算法模块为多种公开的、已被验证有效的同态加密算法,供用户选择,用户可在数据上链时自行选择是否采用同态加密算法上链以及采用何种同态加密算法上链。

优选地,所述步骤S1包括生成公私钥的过程:PubKey,PriKey=KeyGeni(Random()),其中,Random()为安全随机函数,其输出为一个随机数或随机数种子,KeyGen

优选地,所述步骤S5中的加密后上链包括:同质数据x输入后进行解密,E(x)=Encrypt

优选地,所述步骤S5之后包括以下步骤:

步骤S6:数据方将需要共享的数据通过发布的公钥进行加密后上链;

步骤S7:根据用户选择的可插拔算法的不同,链上密文进行运算,并得出计算结果;

步骤S8:当某个节点需要对链上计算结果进行解密以进行进一步的业务时,其需要进行链下请求解密,将计算结果的密文链下传输到客户端的拥有方,客户端根据储存的私钥,对此密文进行解密;

步骤S9:客户端将解密结果发送给请求者后,请求者可根据需要对计算结果进行验证。

优选地,所述步骤S6中,客户端生成公私钥对,节点为数据方将需要共享的数据通过发布的公钥进行加密后进行上链存储。

本申请实施例提供的技术方案可以包括以下有益效果:

1、本申请设计了一种基于可插拔同态加密的区块链同质数据共享方法,通过同态加密算法模块可供开发者选择是否对数据进行同态加密以及进行何种可插拔的同态加密算法,可插拔同态加密算法的公私钥对生成算法,用户可根据需要选择不同的同态加密算法,可供选择,较为灵活。

2、根据用户选择的可插拔算法的不同,链上密文进行运算,并得出计算结果,这一过程计算的所有输入和输出都是加密的,即“可用不可见”,而不仅仅局限于某一特定业务数据。目前现有的同态加密技术或区块链上数据的同态加密技术大多依赖特定的算法和特定的业务场景。这意味着每次有新的区块链业务场景出现时,都要针对这一业务场景的数据特点设计新的算法以保证安全,未能实现高度的通用性。而采用本发明所用的基于可插拔同态加密的区块链同质数据共享方法,可根据需要选择不同的同态加密算法,通用性强。

3、当前区块链上数据同态加密的共享方式大多需要开发人员对同态加密算法本身有深入的了解,而在业务开发过程中处处需要注意同态加密过程,业务开发者不需要了解同态加密算法过程,相对于现有技术,本发明通过简单地调用采用的接口进行数据加密和验证操作,较为简单易用。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明基于可插拔同态加密的区块链同质数据共享方法的结构示意图;

图2是本发明基于可插拔同态加密的区块链同质数据共享方法的流程示意图;

图3是本发明基于可插拔同态加密的区块链同质数据共享方法的另一结构示意图;

图4是本发明基于可插拔同态加密的区块链同质数据共享方法的另一流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图1,为可插拔同态加密数据共享上链的过程图,各个模块如下:

区块链01:即多个节点维护的区块链数据,这一部分的数据是对所有区块链记账节点公开的;

客户端02:即用户(如数据监管方)使用的计算机程序,其中客户端又包括可插拔的同态加密算法模块04和密钥存储模块05;

业务节点03:即具有需上链数据的业务节点(如供应链中某个环节),其也负责维护区块链的记账;

同态加密算法模块04:与已有的技术方案仅采用单一特定加密算法不同,本模块中集成了多种公开的、已被验证有效的同态加密算法,供用户选择。即,用户可在数据上链时自行选择是否采用同态加密算法上链以及采用何种同态加密算法上链。

密钥存储模块05:由于采用了可插拔设计,需要为客户端设计特定的密钥存储空间,对同态加密算法过程中涉及的密钥进行持久化存储。

请参阅图1和图2,本发明公开了一种基于可插拔同态加密的区块链同质数据共享方法10,所述基于可插拔同态加密的区块链同质数据共享方法10包括以下步骤:

步骤S1:根据用户选择的同态加密算法,生成同态加密算法对应的公私钥;

步骤S2:同态加密算法模块将公钥发布到区块链上;

步骤S3:同态加密算法模块发送加密储存私钥至密钥存储模块;

步骤S4:业务方根据需求输入需要上链的数据,并传输至区块链;

步骤S5:业务方将需要共享的数据通过发布的公钥进行加密后上链。

所述同态解密算法模块04为多种公开的、已被验证有效的同态加密算法,供用户选择,用户可在数据上链时自行选择是否采用同态加密算法上链以及采用何种同态加密算法上链。

根据用户选择的同态加密算法,生成同态加密算法对应的公私钥,同态加密算法模块将公钥发布到区块链上。这是因为在大多数同态加密算法中,只有同样的公钥加密后的数据可以被运算,并且,在之后验证数据解密的过程中,公钥也将用于验证数据。所述步骤S1包括生成公私钥的过程:PubKey,PriKey=KeyGen

所述步骤S3中,由于采用了可插拔设计,且每种同态加密算法采用的解密所用的私钥都是不同的,需要对私钥进行本地持久化保存。同时,为了确保私钥的安全,本专利方案中采用了加密储存,即由特定的密钥保管者掌握密钥,进而保证上链数据的隐私安全。

所述步骤S4中业务方根据需求输入需要上链的数据。以供应链金融为例,其部分数据可用元组<上游,下游,金额,物品数量>等进行标示,在这一例子中,不同记录的金额与金额为同质数据,同一类物品的物品数量为同质数据。

所述步骤S5中的加密后上链包括:同质数据x输入后进行解密,E(x)=Encrypt

请参阅图3和图4,数据共享的最终目的是计算和验证,故所述步骤S5之后包括以下步骤:

步骤S6:数据方将需要共享的数据通过发布的公钥进行加密后上链;

步骤S7:根据用户选择的可插拔算法的不同,链上密文进行运算,并得出计算结果;

步骤S8:当某个节点需要对链上计算结果进行解密以进行进一步的业务时,其需要进行链下请求解密,将计算结果的密文链下传输到客户端的拥有方,客户端根据储存的私钥,对此密文进行解密;

步骤S9:客户端将解密结果发送给请求者后,请求者可根据需要对计算结果进行验证。

在所述步骤S6中,客户端生成公私钥对,节点为数据方将需要共享的数据通过发布的公钥进行加密后进行上链存储,上链存储的数据包括各数据密文、公钥ID以及同态加密算法ID等。

在所述步骤S7中,根据用户所选择的可插拔算法的不同,同态加密具有的加法同态、乘法同态等特性。因此,链上的密文可以被直接进行运算。例如,在供应链金融中,需要获取某个公司在某一时段内的所有订单金额之和,则,可以对链上该公司的所有订单进行求和,这一求和过程是所有节点独立完成的,因此这一链上计算是可信的,这个例子如下公式所示:E(Sum(x))=E(x

所述步骤S8中,当某个节点或智能合约需要对链上计算结果进行解密以进行进一步的业务(如信贷发放)时,其需要进行链下请求解密,即将计算结果的密文链下传输到客户端的拥有方(如监管方、公司方)。客户端根据储存的私钥,对此密文进行解密,如下公式所示:Sum(x)=Decrypt

所述步骤S9中,客户端将解密结果发送给请求者(如节点、或智能合约)后,请求者可根据需要对计算结果进行验证,如以下公式所示:E′(Sum(x))=Encrypt

此时,请求者只需要对比E′(Sum(x))和E(Sum(x))的值是否相等,即可验证客户端的解密是否诚实,因此这个链下解密结果是可信的。

本申请实施例提供的技术方案可以包括以下有益效果:

1、本申请设计了一种基于可插拔同态加密的区块链同质数据共享方法,通过同态加密算法模块可供开发者选择是否对数据进行同态加密以及进行何种可插拔的同态加密算法,可插拔同态加密算法的公私钥对生成算法,用户可根据需要选择不同的同态加密算法,可供选择,较为灵活。

2、根据用户选择的可插拔算法的不同,链上密文进行运算,并得出计算结果,这一过程计算的所有输入和输出都是加密的,即“可用不可见”,而不仅仅局限于某一特定业务数据。目前现有的同态加密技术或区块链上数据的同态加密技术大多依赖特定的算法和特定的业务场景。这意味着每次有新的区块链业务场景出现时,都要针对这一业务场景的数据特点设计新的算法以保证安全,未能实现高度的通用性。而采用本发明所用的基于可插拔同态加密的区块链同质数据共享方法,可根据需要选择不同的同态加密算法,通用性强。

3、当前区块链上数据同态加密的共享方式大多需要开发人员对同态加密算法本身有深入的了解,而在业务开发过程中处处需要注意同态加密过程,业务开发者不需要了解同态加密算法过程,相对于现有技术,本发明通过简单地调用采用的接口进行数据加密和验证操作,较为简单易用。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号