一种保护数据发送源隐私的多方数据共享方法及系统与流程

文档序号:13141837阅读:330来源:国知局
一种保护数据发送源隐私的多方数据共享方法及系统与流程

本发明涉及数据共享技术领域,尤其涉及保护数据发送源隐私的多方数据共享方法及系统。



背景技术:

广义上的区块链是指利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全的一种全新的分布式基础架构与计算范式。区块链技术通过去中心化、去信任的方式集体维护一个可靠数据库,解决交易的信任和安全问题。

区块链技术并不是一种单一的技术,而是多种技术整合的结果,这些技术以新的结构组合在一起,形成了一种新的数据记录、存储和表达的方式,主要涉及以下四种技术:

一、分布式账本。即交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。不同于传统的中心化记账方案,没有任何一个节点可以单独记录账目,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。另一方面,由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。

二、非对称加密和授权技术。存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。

三、共识机制。即所有记账节点之间如何达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。

此外,区块链还可以利用由自动化脚本代码组成的智能合约来编程和操作数据。智能合约是基于可信的不可篡改的数据,可以自动化地执行一些预先定义好的规则和条款。

隐私性一直是区块链领域一个重要的话题。区块链作为一门新兴的技术,必要的隐私保护是推广的关键。绝大部分的应用场景,比如交易,都需要有弹性的隐私保护。如何更好地在区块链中加入隐私的元素一直是被不断探索的问题。

多方通过网络共享数据时,每一方都有可能成为数据的分享者或接受者。在多方共享数据的时候,往往难以避免地泄漏发送方的隐私,即共享数据的各方均知道某个数据是由哪一方共享出来的,因为只有这样才可以验证数据发送者身份的合法性甚至实现责任追究。在某些情况下,发送方在暴露自身身份的情况下共享数据时,出于隐私的最小损失,往往会通过脱敏处理,使数据中包含的隐私内容减少,但与此同时,数据的价值也大幅下降。

因此,数据的分享者如何能既保证自身身份隐私数据不被暴露,又可以让接受者们相信数据分享者确实具有分享数据的权限甚至实现责任追究成为函待解决的问题。



技术实现要素:

本发明的目的之一是提供一种保护数据发送源隐私的多方数据共享方法,该方法能既保证数据分享者的身份隐私数据不被暴露,又可以让数据接受者相信数据分享者确实具有分享数据的权限甚至实现责任追究。

根据上述目的,本发明提出了一种保护数据发送源隐私的多方数据共享方法,该多方数据共享方法中具有若干个参与者,其中,该若干个参与者共同连接于一个区块链并共享数据,所述多方数据共享方法包括步骤:

s1:若干个参与者均采用非对称加密法生成代表其自身身份的公私钥对,所述公私钥对包括公钥pki和与公钥对应的私钥ski;

s2:每一个参与者均公布与其自身身份对应的公钥pki,每一个参与者均记录所有公布的公钥pk1,pk2,……pki……,pkn;

s3:当该若干个参与者中的数据发送源要向其他参与者发送数据mi时,其首先基于所有参与者的公钥pk1,pk2,……pki……,pkn、数据发送源的私钥以及要发送的数据mi通过环签名算法生成环签名ringsigi,然后数据发送源通过非对称加密法生成一次性公私钥对,并用一次性公私钥对中的一次性私钥将数据mi和环签名ringsigi写入区块链;

s4:当其他参与者要使用数据mi时,先从区块链上读取数据mi和环签名ringsigi,然后基于公钥pk1,pk2,……pki……,pkn,数据mi和环签名ringsigi采用环签名验证算法对环签名ringsigi进行验证,若验证结果为“合法”,则使用数据mi,若验证结果为“不合法”,则不使用数据mi。

本发明所述的保护数据发送源隐私的多方数据共享方法中,参与者基于区块链共享数据,并结合环签名技术验证数据的合法性,即数据是否由具有数据分享权限的参与者所发送,最后基于验证结果决定是否使用数据。

所述区块链通常由参与者共同维护。所述区块链不限于某一种特殊的区块链,支持基本读写操作即可。

环签名技术是一种保护签名者身份隐私的数字签名技术。

数字签名技术是一种应用在计算机网络中的功能类似于手写签名的技术。在实际生活中,我们对一份合同进行签名,以此表明我们对合同内容的认可。日后如果需要追究,只需要验证当时对合同的签名是否为当事人本人所签写,就可以推断出当时当事人是否已经同意了合同中的内容。同样,通过数字签名,签名者对一段内容进行签名,验证人可以通过验证签名,推断出该签名对应的签名人的身份。可以说,使用数字签名的时候,签名者希望通过生成签名,向验证人表达自己对某段内容的认同和负责。一般的数字签名的应用场景是不涉及隐私问题的,因为我们希望验证人通过签名知道是我们在对某事负责。

环签名除了保留了数字签名技术的认证功能之外,还加入了对签名者身份的隐私保护。一个签名者生成环签名,其目的是让验证者认同,这个环签名是由确定的一组人中的一个生成的,但是除非这个签名者主动暴露自身私钥,其余情况下,单从签名本身分析,没有人可以猜出这组人中谁更有可能生成了签名,假设n为一个组的人数,每个人都有1/n的可能。

非对称加密法采用两个相关联的不同的密钥,即所述公私钥对。如果用公钥对数据进行加密,则只有用对应的私钥才能解密,如果用私钥对数据进行加密,则只有用对应的公钥才能解密。由于加密和解密使用的是两个不同的密钥,因此称为非对称加密法。所述公私钥对中通常先生成私钥,私钥可以是随机数池中的任意一个随机数,然后可以基于私钥生成公钥。在非对称加密法中,通过私钥来生成公钥很容易,但是从公钥反推私钥却十分困难,通常认为无法从公钥反推私钥。因此公钥可以被公开,但是私钥一定要用户自己保存好。

本发明所述的保护数据发送源隐私的多方数据共享方法通过采用一次性私钥对交易tx进行签名,从而将数据mi和环签名ringsigi写入区块链。

从以上原理可以看出,本发明所述的保护数据发送源隐私的多方数据共享方法能既保证作为数据分享者的数据发送源的身份隐私数据不被暴露,又可以让作为数据接受者的其他参与者相信数据发送源确实具有分享数据的权限。

进一步地,本发明所述的多方数据共享方法中,在所述步骤s1中,所述非对称加密法为椭圆曲线加密法。

进一步地,本发明所述的多方数据共享方法中,在所述步骤s3中,所述非对称加密法为椭圆曲线加密法。

椭圆曲线加密法(ellipticcurvecryptography)有诸多优点,同样的安全等级下,椭圆曲线的密钥长度会比rsa密钥短很多。使用椭圆曲线来生成非对称加密中的公私钥对,其中私钥可以被用来生成数字签名,公钥可以被用来验证签名的合法性。私钥通常是一个大的随机数,一个公钥对应的是一条椭圆曲线上的一个点。我们通常定义椭圆曲线的参数,结合私钥来生成公钥。

上述方案中,一次性公私钥对的椭圆曲线通常需要跟随区块链所使用的椭圆曲线。每个参与者生成固定的公私钥对的椭圆曲线算法建议使用国标sm2算法。

进一步地,本发明所述的多方数据共享方法中,所述环签名为可链接环签名。

环签名技术经历了长时间的发展,目前的可链接环签名(linkableringsignature)是一种同一个用户对同一个信息进行重复签名时,两个签名中会有特定字段相同,进而验证人可以发现两次签名者为同一人的的环签名技术,它可以保证同一个人对同一个内容只能签名一次,重复签名会导致所产生的签名被发现与之前的签名为同一个人所生成。重复签名不会直接暴露签名者身份,但是很有可能会通过其所产生的侧面消息导致签名者身份暴露。具有上述效果的环签名被称为可链接环签名,其可以有多种实现方式。

进一步地,本发明所述的多方数据共享方法中,在所述步骤s4中,若验证结果为不合法,则不使用数据mi且进入第一问题处理程序,所述第一问题处理程序包括步骤:记录一段时间内验证结果为“不合法”的数量,若该数量超过预设的第一阈值,则停止区块链数据共享。

上述方案中,验证不合法的原因有可能是数据发送源用错了私钥,或者数据发送源不是参与者之一。对验证不合法的处理会影响整个系统的操作流畅性,因此发明人考虑预设所述第一阈值,使用该第一阈值的目的是仅对验证结果为“不合法”的出现频率较高的情况进行处理,具体来说,若一段时间内验证不合法的累积次数未超过所述第一阈值,则各参与者忽略验证不合法,反之则说明可能有参与者故意制造混乱,或者有外部人士渗透进参与者的网络中进行攻击,此时需要停止区块链数据共享。

更进一步地,上述多方数据共享方法中,在记录验证结果为“不合法”的数量之前,先预留一设定的时间段以供数据发送源认领错误,若超过该设定的时间段错误还无人认领,再记录验证结果为“不合法”的数量。

更进一步地,上述多方数据共享方法还包括步骤s5:在使用数据mi后,若发现数据错误,则报错并进入第二问题处理程序,所述第二问题处理程序包括步骤:所有参与者投票确认数据mi是否有错,若投票认为数据mi有错的比重超过预设的第二阈值,则所有参与者对错误的数据进行环签名,以寻找出写入错误数据的数据发送源。

上述方案中,对报错的处理会影响整个系统的数据可用性,受各方认知能力的影响,一方认为有误,其他方可能不认为该数据有误,因此发明人考虑预设所述第二阈值,若投票认为数据mi有错的比重超过所述第二阈值,则说明可能有参与者故意写入错误数据,此时需要寻找出写入错误数据的数据发送源,从而实现责任追究。通常各方写入对数据mi的可链接环签名,并对该可链接环签名进行数字签名以证明身份,不提交可链接环签名或提供的可链接环签名与已知可链接环签名相连的人收到相应惩罚。此外,若不纠错,通常各参与者忽略错误的数据。纠错手段可以视各参与者意愿自行定制。

更进一步地,上述多方数据共享方法中,在所述步骤s5中,在投票确认数据mi是否有错之前,先预留一设定的时间段以供数据发送源认领错误,若超过该设定的时间段数据错误还无人认领,再投票确认数据mi是否有错。

更进一步地,上述多方数据共享方法中,在所述步骤s5中,若投票认为数据mi有错的比重超过预设的第二阈值,则所有参与者先投票决定是否需要寻找写入错误数据的数据发送源,若投票认为需要寻找写入错误数据的数据发送源的比重超过预设的第三阈值,则所有参与者对错误的数据进行环签名,以寻找出写入错误数据的数据发送源。

上述方案中,若投票认为数据mi有错的比重超过预设的第二阈值,则说明参与者达成共同认知数据mi有错,此时参与者均不使用数据mi即可,不一定非要追究数据发送源,强行追究数据发送源的结果很可能是被追究方以后再无立足之地进而退出。但是从另一个层面说,本发明是为了服务试图诚信共享数据的各方,若一方不诚信且不悔改,那么追究其责任也责无旁贷,因此可以投票决定是否追究。若投票认为需要寻找写入错误数据的数据发送源的比重超过预设的第三阈值,那么各方通常写入对该段数据的可链接环签名,并对该可链接环签名进行数字签名以证明身份,不提交可链接环签名或提供的可链接环签名与已知可链接环签名相连的人收到相应惩罚。

上述各方案中,所述问题处理程序的设计可以不限于上述具体方案,即可以根据不同的问题采取不同的处理手段。

本发明的另一目的是提供一种保护数据发送源隐私的多方数据共享系统,该系统能既保证数据分享者的身份隐私数据不被暴露,又可以让数据接受者相信数据分享者确实具有分享数据的权限甚至实现责任追究。

基于上述发明目的,本发明还提供了一种保护数据发送源隐私的多方数据共享系统,其执行上述任一多方数据共享方法。

本发明所述的保护数据发送源隐私的多方数据共享系统通常包括由所有参与者共同维护的区块链网络,且各参与者通常具有生成和验证环签名的能力、生成公私钥对的能力以及共同维护一个封闭的区块链的能力。所述封闭的区块链即除参与者之外,外人无法向区块链写入或者从区块链中读取数据。

本发明所述的保护数据发送源隐私的多方数据共享系统由于采用了上述多方数据共享方法,同样可以既保证数据分享者的身份隐私数据不被暴露,又可以让数据接受者相信数据分享者确实具有分享数据的权限甚至实现责任追究。具体原理相应方法部分已经详述,在此不再赘述。

本发明所述的保护数据发送源隐私的多方数据共享方法具有以下优点和有益效果:

(1)可以既保证数据分享者的身份隐私数据不被暴露,又可以让数据接受者相信数据分享者确实具有分享数据的权限甚至实现责任追究。

(2)当多方之间通过网络共享数据时,可以在保护数据提供者的身份隐私的同时,帮助各方验证数据发送者身份的合法性。

(3)可以极大地保护参与数据共享的各方的身份隐私,并且具有可验证和可纠错的能力。

(4)不仅可以解决数据共享各方之间的信任危机,也可以消除各参与方对隐私保护的担忧,极大地促进网络多方数据共享的发展。

本发明所述的保护数据发送源隐私的多方数据共享系统,其同样具有上述效果。

附图说明

图1为本发明所述的保护数据发送源隐私的多方数据共享方法在一种实施方式下的流程示意图。

图2为本发明实施例中的保护数据发送源隐私的多方数据共享系统的工作流程示意图。

图3为本发明实施例中的公私钥对的生成过程示意图。

图4为本发明实施例中的环签名的生成过程示意图。

图5为本发明实施例中的环签名的验证过程示意图。

具体实施方式

下面将结合说明书附图和具体的实施例来对本发明所述的保护数据发送源隐私的多方数据共享方法和系统进行进一步地详细说明,但是该详细说明不构成对本发明的限制。

图1显示了本发明所述的保护数据发送源隐私的多方数据共享方法在一种实施方式下的流程。

如图1所示,该实施方式的保护数据发送源隐私的多方数据共享方法中具有若干个参与者,其中,该若干个参与者共同连接于一个区块链并共享数据,包括步骤:

s1:若干个参与者均采用非对称加密法生成代表其自身身份的公私钥对,公私钥对包括公钥pki和与公钥对应的私钥ski。

s2:每一个参与者均公布与其自身身份对应的公钥pki,每一个参与者均记录所有公布的公钥pk1,pk2,……pki……,pkn。

s3:当该若干个参与者中的数据发送源要向其他参与者发送数据mi时,其首先基于所有参与者的公钥pk1,pk2,……pki……,pkn、数据发送源的私钥以及要发送的数据mi通过环签名算法生成环签名ringsigi,然后数据发送源通过非对称加密法生成一次性公私钥对,并用一次性公私钥对中的一次性私钥将数据mi和环签名ringsigi写入区块链。

s4:当其他参与者要使用数据mi时,先从区块链上读取数据mi和环签名ringsigi,然后基于公钥pk1,pk2,……pki……,pkn,数据mi和环签名ringsigi采用环签名验证算法对环签名ringsigi进行验证,若验证结果为“合法”,则使用数据mi,若验证结果为“不合法”,则不使用数据mi。

在某些实施方式下,在步骤s1中,非对称加密法为椭圆曲线加密法。

在某些实施方式下,在步骤s3中,非对称加密法为椭圆曲线加密法。

在某些实施方式下,环签名为可链接环签名。

在某些实施方式下,在步骤s4中,若验证结果为不合法,则不使用数据mi且进入第一问题处理程序,第一问题处理程序包括步骤:记录一段时间内验证结果为“不合法”的数量,若该数量超过预设的第一阈值,则停止区块链数据共享。

在某些实施方式下,在记录验证结果为“不合法”的数量之前,先预留一设定的时间段以供数据发送源认领错误,若超过该设定的时间段错误还无人认领,再记录验证结果为“不合法”的数量。

在某些实施方式下,上述多方数据共享方法还包括步骤s5:在使用数据mi后,若发现数据错误,则报错并进入第二问题处理程序,第二问题处理程序包括步骤:所有参与者投票确认数据mi是否有错,若投票认为数据mi有错的比重超过预设的第二阈值,则所有参与者对错误的数据进行环签名,以寻找出写入错误数据的数据发送源。

在某些实施方式下,在步骤s5中,在投票确认数据mi是否有错之前,先预留一设定的时间段以供数据发送源认领错误,若超过该设定的时间段数据错误还无人认领,再投票确认数据mi是否有错。

在某些实施方式下,在步骤s5中,若投票认为数据mi有错的比重超过预设的第二阈值,则所有参与者先投票决定是否需要寻找写入错误数据的数据发送源,若投票认为需要寻找写入错误数据的数据发送源的比重超过预设的第三阈值,则所有参与者对错误的数据进行环签名,以寻找出写入错误数据的数据发送源。

下面以一个具体的实施例进一步说明本发明。

本发明实施例的保护数据发送源隐私的多方数据共享系统具有四个参与者,该四个参与者共同连接于一个支持基本读写操作的区块链并共享数据,且各参与者具有生成和验证环签名的能力、生成公私钥对的能力以及共同维护一个封闭的区块链的能力。封闭的区块链即除参与者之外,外人无法向区块链写入或者从区块链中读取数据。

图2示意了本发明实施例中的保护数据发送源隐私的多方数据共享系统的工作流程。

如图2所示,本发明实施例中的保护数据发送源隐私的多方数据共享系统的工作流程包括:

步骤110:四个参与者均采用椭圆曲线加密法生成代表其自身身份的公私钥对,包括公钥pk1、pk2、pk3、pk4,与公钥对应的私钥sk1、sk2、sk3、sk4。公私钥对生成过程如图3所示,先生成私钥,私钥是一个大的随机数,通过定义椭圆曲线的参数,结合私钥来生成公钥。其中,生成公私钥对的椭圆曲线算法使用国标sm2算法。

步骤120:每一个参与者均公布与其自身身份对应的公钥pki,每一个参与者均记录所有公布的公钥pk1、pk2、pk3、pk4。

步骤130:当该四个参与者中的数据发送源要向其他参与者发送数据mi时,其首先基于所有参与者的公钥pk1、pk2、pk3、pk4、数据发送源的私钥以及要发送的数据mi通过环签名算法生成环签名ringsigi。

该步骤中,环签名ringsigi为可链接环签名。环签名ringsigi的生成过程如图4所示,基于所有参与者的公钥pk1、pk2、pk3、pk4、数据发送源的私钥以及要发送的数据mi签署环签名,然后生成环签名ringsigi。

步骤140:数据发送源通过椭圆曲线加密法生成一次性公私钥对。一次性公私钥对生成过程同样可以参考图3,先生成一次性私钥,一次性私钥是一个大的随机数,通过定义椭圆曲线的参数,结合一次性私钥来生成一次性公钥。其中,一次性公私钥对的椭圆曲线需要跟随区块链所使用的椭圆曲线。

步骤150:通过采用一次性私钥对交易tx进行签名将数据mi和环签名ringsigi写入区块链。

步骤160:当其他参与者要使用数据mi时,先从区块链上读取数据mi和环签名ringsigi,然后基于公钥pk1、pk2、pk3、pk4,数据mi和环签名ringsigi采用环签名验证算法对环签名ringsigi进行验证。

该步骤中,环签名ringsigi的验证过程如图5所示,基于公钥pk1、pk2、pk3、pk4,数据mi和环签名ringsigi验证环签名,验证结果包括“合法”和“不合法”。

步骤170:若验证结果为“合法”,则使用数据mi,若验证结果为“不合法”,则不使用数据mi且进入第一问题处理程序,第一问题处理程序包括步骤:预留一设定的时间段以供数据发送源认领错误,若超过该设定的时间段错误还无人认领,则记录一段时间内验证结果为“不合法”的数量。若该数量未超过预设的第一阈值,则各参与者忽略验证不合法,若该数量超过预设的第一阈值,则停止区块链数据共享。

步骤180:在使用数据mi后,若发现数据错误,则报错并进入第二问题处理程序,第二问题处理程序包括步骤:预留一设定的时间段以供数据发送源认领错误,若超过该设定的时间段数据错误还无人认领,则所有参与者投票确认数据mi是否有错,若投票认为数据mi有错的比重超过预设的第二阈值,则所有参与者先投票决定是否需要寻找写入错误数据的数据发送源,若投票认为需要寻找写入错误数据的数据发送源的比重超过预设的第三阈值,则所有参与者对错误的数据进行环签名,以寻找出写入错误数据的数据发送源。其中,所有参与者写入对该段数据的可链接环签名,并对该可链接环签名进行数字签名以证明身份,不提交可链接环签名或提供的可链接环签名与已知可链接环签名相连的人收到相应惩罚。

另外,还需要说明的是,本案中各技术特征的组合方式并不限本案权利要求中所记载的组合方式或是具体实施例所记载的组合方式,本案记载的所有技术特征可以以任何方式进行自由组合或结合,除非相互之间产生矛盾。

需要注意的是,以上列举的仅为本发明的具体实施例,显然本发明不限于以上实施例,随之有着许多的类似变化。本领域的技术人员如果从本发明公开的内容直接导出或联想到的所有变形,均应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1