数据的传输方法、装置、介质以及设备与流程

文档序号:18135331发布日期:2019-07-10 10:33阅读:154来源:国知局
数据的传输方法、装置、介质以及设备与流程

本申请涉及计算机领域,尤其涉及一种数据的传输方法、装置、计算机可读存储介质以及计算设备和终端设备。



背景技术:

随着社会经济以及信息技术的快速发展,数字资产逐渐走进了人们视野。数字资产是指以电子数据形式存在的资产,随着区块链技术的发展,使得数字资产能够基于区块链网络实现不依赖于第三方的资产交易,从而为数字资产在网络上便捷地流转创造了条件。

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,区块链技术能够保证在网络上进行资产交易的安全性和可靠性,并能够降低资产交易的成本。

发明人发现,传统的区块链方案在进行数据传输时存在隐私泄露的问题。



技术实现要素:

本申请实施例提供了一种数据的传输方法、装置、介质以及设备,能够保证存储于区块链网络中的数据具有私密性,可以解决隐私泄露的问题。

有鉴于此,本申请一方面提供了数据的传输方法,包括:

根据数据接收方的公钥和数据发送方的私钥,确定对称加密密钥;

利用所述对称加密密钥对私密信息进行加密得到加密信息,所述私密信息包括数据接收方的区块链账户地址和数据内容;

根据所述加密信息生成待传输数据,所述待传输数据中包括所述数据发送方的区块链账户地址和所述加密信息,并通过区块链网络将所述待传输数据记录在区块链中。

可选的,所述数据内容包括:借款凭证、收款凭证或者用于解密指定对象的密码。

本申请一方面提供了一种数据的传输方法,包括:

获取区块链中的待传输数据,所述待传输数据中包括加密信息和数据发送方的区块链账户地址,所述加密信息是数据发送方利用对称加密密钥对私密信息进行加密得到的;

根据数据接收方的私钥和数据发送方的公钥,确定所述对称加密密钥;

利用所述对称加密密钥对所述加密信息进行解密得到所述私密信息,所述私密信息包括数据接收方的区块链账户地址和数据内容;

当所述数据接收方的区块链账户地址与当前账户地址匹配时,从所述私密信息中获取所述数据内容。

可选的,所述数据发送方的区块链账户地址包括:所述数据发送方的公钥和校验码;

则对所述数据发送方的区块链账户地址中的校验码进行校验,校验通过后,从数据发送方的区块链账户地址中获取所述数据发送方的公钥。

可选的,所述数据发送方的区块链账户地址作为所述数据发送方的公钥。

可选的,所述方法还包括:

存储所述对称加密密钥与所述数据发送方的区块链账户地址的对应关系,所述对应关系用于在与数据发送方进行下一次数据传输时确定对称加密密钥。

本申请一方面提供了一种数据的传输装置,包括:

确定模块,用于根据数据接收方的公钥和数据发送方的私钥,确定对称加密密钥;

加密模块,用于利用所述对称加密密钥对私密信息进行加密得到加密信息,所述私密信息包括数据接收方的区块链账户地址和数据内容;

传输模块,用于根据所述加密信息生成待传输数据,所述待传输数据中包括所述加密信息和所述数据发送方的区块链账户地址,并通过区块链网络将所述待传输数据记录在区块链中。

本申请一方面提供了一种数据的传输装置,包括:

接收模块,用于获取区块链中的待传输数据,所述待传输数据中包括加密信息和数据发送方的区块链账户地址,所述加密信息是数据发送方利用对称加密密钥对私密信息进行加密得到加密信息;

确定模块,用于根据数据接收方的私钥和数据发送方的公钥,确定所述对称加密密钥;

解密模块,用于利用所述对称加密密钥对所述加密信息进行解密得到所述私密信息,所述私密信息包括数据接收方的区块链账户地址和数据内容;

获取模块,用于当所述私密信息中的数据接收方的区块链账户地址与当前账户地址匹配,从所述私密信息中获取所述数据内容。

本申请一方面提供了一种设备,所述设备包括:

处理器以及存储器;

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行所述的数据传输方法。

本申请一方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行所述的数据传输方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

在本申请实施例提供的数据的传输方法中,数据发送方先根据自身的私钥和数据接收方的公钥确定对称加密密钥,然后利用该对称加密密钥对私密信息进行加密得到加密信息,私密信息中包括数据接收方的区块链账户地址和数据内容,进而,根据该加密信息和数据发送方的区块链账户地址生成待传输数据,上传至区块链网络;相应地,任一数据接收方从区块链网络中获取该待传输数据,根据自身的私钥和数据发送方的公钥确定对称加密密钥,利用该对称加密密钥解密该待传输数据中的加密信息得到私密信息,若该私密信息中数据接收方的区块链账户地址与上述任一数据接收方的当前账户地址匹配,则说明上述任一数据接收方具有获取该数据内容的权限,从而从该私密信息中获取数据内容。

可知,数据传输双方通过对称加密算法对数据传输过程中需要保密的私密信息进行保密处理,使得在区块链网络传输过程中,这些私密信息都以密文形式进行传输,只有真正的接收方才能够通过对称加密算法成功解密上述加密信息,并且数据接收方区块链账户地址与自身账户地址匹配成功时,获得属于真正属于自己的数据内容,如此就能够保证数据内容传输的私密性,有效地防止了隐私泄露。

附图说明

图1为本申请实施例提供的数据的传输方法的应用场景示意图;

图2为本申请实施例提供的数据发送方侧的数据的传输方法的流程示意图;

图3为本申请实施例提供的数据接收方侧的数据的传输方法的流程示意图;

图4为本申请实施例提供的数据的传输方法的交互信令图;

图5为本申请实施例提供的数据发送方侧的一种数据的传输装置的结构示意图;

图6为本申请实施例提供的数据发送方侧的一种数据的传输装置的结构示意图;

图7为本申请实施例提供的数据发送方侧的一种数据的传输装置的结构示意图;

图8为本申请实施例提供的数据发送方侧的一种数据的传输装置的结构示意图;

图9为本申请实施例提供的数据接收方侧的一种数据的传输装置的结构示意图;

图10为本申请实施例提供的数据接收方侧的一种数据的传输装置的结构示意图;

图11为本申请实施例提供的数据接收方侧的一种数据的传输装置的结构示意图;

图12为本申请实施例提供的数据接收方侧的一种数据的传输装置的结构示意图;

图13为本申请实施例提供的一种服务器的结构示意图;

图14为本申请实施例提供的一种终端设备的结构示意图。

具体实施方式

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

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在区块链网络中的每个节点全量存储,每个节点均能够查看该区块链网络中记录的全部历史数据详情;而在很多业务场景中,区块链网络中的参与方希望自身上传的数据内容具有一定的私密性,即数据发送方仅希望特定的数据接收方能够获取该数据内容,使得该数据内容对区块链网络中的其他参与方保密。

为了满足上述应用场景的需求,本申请实施例提供了一种数据的传输方法、装置、介质以及设备,能够使得区块链网络中的数据内容具有一定的私密性,防止隐私泄露。

具体的,在本申请实施例提供的数据的传输方法中,数据发送方与数据接收方在通过区块链网络传输数据时,使用对称加密算法保护数据接收方的区块链账户地址以及私密的数据内容,使得这些信息以加密信息的形式进行传输,如此,在整个数据传输的过程中,只有数据发送方和真正的数据接收方才能够获知数据所涉及的接收方是谁,以及数据的具体内容是什么,如此,其他节点由于其不具备真正的数据接收方的私钥,其就无法成功解密加密信息,无法得到真正的交易私密信息,再者其也无法得知交易私密信息的具体结构进而无法得知真正的数据内容。

如此,保证只有具有获取数据内容权限的数据接收方才能获取到正确的数据内容,而区块链网络中的其他参与方难以获取到正确的数据内容,保证了数据内容的私密性和数据接收方的区块链账户地址的私密性,有效地防止区块链网络中记录的数据泄露隐私。

应理解,本申请实施例提供的数据的传输方法可以应用于具有数据处理能力的设备,即数据发送方侧的传输方法、数据接收方侧的传输方法均可以通过具有数据处理能力的设备来实现,该设备可以为终端设备或者服务器;其中,终端设备具体可以为计算机、个人数字助理(personaldigitalassitant,pda)、平板电脑、智能手机等;服务器具体可以为独立服务器,也可以为集群服务器。

为了便于理解本申请实施例提供的技术方案,下面结合应用场景对本申请实施例提供的数据的传输方法进行介绍。

参见图1,图1为本申请实施例提供的数据的传输方法的应用场景示意图。如图1所示,该应用场景中包括:数据发送方101、区块链网络102和数据接收方103;其中,数据发送方101和数据接收方103均为具有数据处理能力的设备,具体可以为终端设备或服务器;区块链网络102中包括多个节点,这些节点用于记录区块链网络102的参与方上传至区块链网络102的数据内容。

数据发送方101向区块链网络102上传需要保密的数据内容时,先根据自身的私钥和具有获取该数据内容权限的数据接收方的公钥,生成对称加密密钥;然后利用该对称加密密钥对私密信息进行加密处理生成加密信息,该私密信息中包括需要保密的数据内容和具有获取数据内容权限的数据接收方的区块链账户地址;进而,根据该加密信息和该数据发送方101的区块链账户地址生成待传输数据,将该待传输数据上传至区块链网络102。

数据接收方103从区块链网络102中获取数据发送方101上传的待传输数据,根据其中的区块链账户地址确定数据发送方101的公钥,进而利用自身的私钥和数据发送方101的公钥生成对称加密密钥,利用该对称加密密钥解密待传输数据中的加密信息得到私密信息;若数据接收方103自身的区块链账户地址与该数据私密信息中的区块链账户地址相匹配,则说明数据接收方103具有获取数据内容的权限,相应地从该私密信息中获取数据内容;反之,若数据接收方103自身的区块链账户地址与该私密信息中的区块链账户地址不匹配,则说明数据接收方103不具有获取数据内容的权限,该数据接收方103解密得到私密信息并不正确,相应地,该数据接收方103也无法获取到正确的数据内容。

如此,保证只有具有获取数据内容权限的数据接收方103才能获取到正确的数据内容,而区块链网络102中的其他参与方难以获取到正确的数据内容,保证了数据内容的私密性,有效地防止区块链网络102中记录的数据泄露隐私。

需要说明的是,在一些情况下,数据发送方101实际上可以为区块链网络102中的一个节点,即该数据发送方101既作为业务节点,具备加密处理私密信息、生成上传待传输数据的能力,又作为区块链网络102中的数据存储节点,具备存储区块链网络数据的能力;相类似地,数据接收方103也可以为区块链网络102中的一个节点,即该数据接收方103既作为业务节点,具备接收数据内容、解密加密信息的能力,又作为区块链102中的数据存储节点,具备存储区块链网络数据的能力。

需要说明的是,本申请实施例提供的数据传输方法通常可以应用于传输交易数据的应用场景下,即数据发送方通过区块链网络,将交易数据传输至数据接收方,在此过程中,数据发送方利用所确定的对称加密密钥,对需要保密的该交易内容和数据接收方的区块链账户地址进行加密处理,得到加密信息,进而根据该加密信息和数据发送方的区块链账户地址生成交易数据,上传至区块链网络中。如此保证了交易内容的私密性。

当然,本申请实施例提供的数据传输方法,也可以应用于其他场景下,以保证其他类型的数据内容具有私密性,在此不对该方法的应用场景做任何限定。

应理解,上述图1所示的应用场景仅为一种示例,在实际应用中,数据发送方101和/或数据接收方103也可以作为区块链网络102中的一个节点,在此不对本申请实施例提供的数据的传输方法做任何限定。

下面先从数据发送方的角度出发,通过实施例对本申请提供的数据的传输方法进行介绍。

参见图2,图2为本申请实施例提供的一种数据的传输方法的流程示意图;如图2所示,数据发送方侧的数据的传输方法包括以下步骤:

步骤201:根据数据接收方的公钥和数据发送方的私钥,确定对称加密密钥。

数据发送方将需要保密的数据内容上传至区块链网络之前,先获取数据接收方的公钥,该数据接收方为具有查看该数据内容的权限的区块链参与方;进而,利用自身的私钥以及数据接收方的公钥生成对称加密密钥。

需要说明的是,数据发送方的私钥与该数据发送方的公钥是一对,利用数据发送方的私钥对数据进行加密处理生成的密文,只有利用该数据发送方的公钥才能解密,利用数据发送方的公钥对数据进行加密处理生成的密文,只有利用该数据发送方的私钥才能解密;相类似地,数据接收方的私钥与该数据接收方的公钥是一对,利用数据接收方的私钥对数据进行加密处理生成的密文,只有利用该数据接收方的公钥才能解密,利用数据接收方的公钥对数据进行加密处理生成的密文,只有利用该数据接收方的私钥才能解密。

在本申请实施例提供的技术方案中,基于数据接收方的公钥和数据发送方的私钥生成对称加密密钥,利用该对称加密密钥加密生成的密文,只有利用基于该数据接收方的私钥和该数据发送方的公钥生成的对称加密密钥才能成功解密。

下面对数据发送方确定对称加密密钥的具体实现方式进行介绍:

在一种可能的实现方式中,数据发送方可以通过与数据接收方约定第一质数和第二质数来确定对称加密密钥。即,数据发送方接收数据接收方发送的数据接收方的公钥,该数据接收方的公钥是根据数据发送方与数据接收方约定的第一质数、第二质数以及数据接收方的私钥生成的,其中,第一质数大于第二质数;进而,数据发送方根据数据接收方的公钥、数据发送方的私钥以及第一质数,生成对称加密密钥。

具体的,在数据发送方和数据接收方需要协商对称加密密钥时,数据发送方和数据接收方可以先共享第一质数p和第二质数g,该第二质数g具体可以为第一质数p的本原根,第一质数p和第二质数g存在以下关系:2≤g≤p-1;第一质数p和第二质数g可以不经加密地由数据发送方发送给数据接收方,或者由数据接收方发送给数据发送方,即保证数据发送方和数据接收方均获知第一质数p和第二质数g。

然后,数据发送方可以产生一个自身的私钥a,该私钥a具体可以为数据发送方生成的随机数,其满足以下关系:1≤a≤p-1,然后,数据发送方可以根据第一质数p、第二质数g和私钥a,计算数据发送方的公钥ya,具体计算公式如式(1):

ya=gamodp(1)

数据发送方可以通过区块链网络或其他方式,使得数据接收方获取该公钥ya,数据接收方获取数据发送方的公钥的方式具体将在后续进行介绍。

相类似地,数据接收方也可以采用类似的方式生成自身的公钥,并将其发送给数据发送方;具体的,数据接收方可以产生一个自身的私钥b,该私钥b具体可以为数据接收方生成的随机数,其满足以下关系:1≤b≤p-1,然后,数据接收方可以根据第一质数p、第二质数g和私钥b,计算数据接收方的公钥yb,具体计算公式如式(2):

yb=gbmodp(2)

数据接收方可以通过区块链网络或其他方式,使得数据发送方获取该公钥yb,数据发送方获取数据接收方的公钥的方式具体将在后续进行介绍。

数据发送方获取到数据接收方的公钥yb后,可以将该数据接收方的公钥yb作为底数,将自身的私钥a作为指数,确定乘方运算结果作为第一参数;进而,确定该第一参数与第一质数p的模值作为对称加密密钥ka。

即,数据发送方可以通过以下公式(3)计算对称加密密钥ka:

ka=(yb)amodp=(gbmodp)amodp=gb×amodp(3)

相类似地,数据接收方获取到数据发送方的公钥ya后,可以将该数据发送方的公钥ya作为底数,将自身的私钥b作为指数,确定乘方运算结果作为第二参数;进而,确定该第二参数与第一质数p的模值作为对称加密密钥kb。

即,数据接收方可以通过以下公式(4)计算对称加密密钥kb:

kb=(ya)bmodp=(gamodp)bmodp=ga×bmodp(4)

可见,数据发送方经式(3)生成的对称加密密钥ka,与数据接收方经式(4)生成的对称加密密钥kb相等。

在另一种可能的实现方式中,数据发送方还可以通过与数据接收方约定共享曲线参数中的基点来确定对称加密密钥。即,数据发送方可以接收数据接收方发送的其自身的公钥,该数据接收方的公钥是根据数据发送方和数据接收方约定的共享曲线参数中的基点以及数据接收方的私钥生成的;进而,数据发送方确定数据接收方的公钥和数据发送方的私钥的乘积,作为对称加密密钥。

具体的,数据发送方可以生成自身的私钥a,该私钥a具体可以为数据发送方生成的随机数,数据发送方利用该私钥a和共享曲线参数中的基点g生成自身的公钥a;数据发送方的公钥a具体可以是私钥a和基点g的乘积。

相类似地,数据接收方可以生成自身的私钥b,该私钥b具体可以为数据接收方生成的随机数,数据接收方利用该私钥b和共享曲线参数中的基点g生成自身的公钥b;数据接收方的公钥b具体可以是私钥b和基点g的乘积。

数据发送方可以通过区块链网络或其他方式,使得数据接收方获取到数据发送方的公钥a;相类似地,数据接收方可以通过区块链网络或其他方式,使得数据发送方获取到数据接收方的公钥b。

数据发送方获取到数据接收方的公钥b后,可以确定该数据接收方的公钥b与自身的私钥a的乘积作为对称加密密钥;相类似地,数据接收方获取到数据发送方的公钥a后,可以确定该数据发送方的公钥a与自身的私钥b的乘积作为对称加密密钥。根据数学运算原理可知,数据发送方和数据接收方确定出的对称加密密钥相等。

应理解,上述两种确定对称加密密钥的方式仅为示例,在实际应用中,数据发送方和数据接收方还可以通过其他方式确定对称加密密钥,在此不对确定对称加密密钥的方式做具体限定。

下面对数据发送方获取数据接收方的公钥的方式进行介绍:

在一种可能的实现方式中,数据接收方的区块链账户地址包括数据接收方的公钥和校验码;相应地,数据发送方可以先对数据接收方的区块链账户地址中的校验码进行校验,校验通过后,从数据接收方的区块链账户地址中获取数据接收方的公钥。

数据发送方在获取数据接收方的公钥之前,可以先对数据接收方的区块链账户地址中的校验码进行校验,以判断该数据接收方的区块链账户地址中的数据接收方的公钥是否可靠;具体的,数据发送方可以采用循环冗余校验(cyclicredundancycheck,crc)算法对校验码进行校验,即数据发送方可以采用crc算法根据数据接收方的区块链账户地址中固定位数的数据计算生成校验码,对比该校验码与数据接收方的区块链账户地址中的校验码是否一致,若二者一致,则表示校验通过,说明该数据接收方的区块链账户地址中的数据接收方的公钥可靠,可以利用该数据接收方的公钥生成对称加密密钥,反之,若二者不一致,则表示校验未通过,说明该数据接收方的区块链账户地址中的数据接收方的公钥不可靠,不能利用该数据接收方的公钥生成对称加密密钥。

例如,假设数据接收方的区块链账户地址包括10个字节,前7个字节用于承载数据接收方的公钥,后3个字节用于承载校验码;数据发送方采用crc算法根据区块链账户地址中的前7个字节生成校验码,对比该校验码与区块链账户地址中的后3个字节承载的校验码是否一致,若一致,则表明验证通过,可以基于该区块链账户地址中前7个字节承载的数据接收方的公钥生成对称加密密钥,若不一致,则表明验证未通过,则无法基于该区块链账户地址中的数据接收方的公钥生成对称加密密钥。

应理解,在实际应用中,数据接收方的区块链账户地址中除了可以包括数据接收方的公钥和校验码外,还可以包括其他内容,在此不对数据接收方的区块链账户地址中包括的内容做具体限定。

应理解,数据发送方除了可以采用crc算法对校验码进行校验外,还可以采用其他校验算法进行校验,在此不对所采用的校验算法做具体限定。

在另一种可能的实现方式中,数据发送方可以直接将数据接收方的区块链账户地址作为数据接收方的公钥。

在很多情况下,数据接收方的区块链账户地址实际上即为该数据接收方的公钥,相应地,数据发送方计算对称加密密钥时,可以直接根据自身的私钥以及该数据接收方的区块链账户地址,计算生成对称加密密钥。如此,对于数据方而言,可以减少其存储其他数据方的公钥的存储压力,其只需要记录其他数据方的区块链账户地址即可,同时也简化了整个传输流程。

在又一种可能的实现方式中,数据发送方也可以预先和数据接收方交换自身的公钥,即数据发送方将自身的公钥发送至数据接收方,数据接收方将自身的公钥发送至数据发送方,在需要生成对称加密密钥时,数据发送方可以直接根据预先获得的数据接收方的公钥和自身的私钥,计算生成对称加密密钥。

应理解,除了上述三种获取数据接收方的公钥的方式外,在实际应用中,数据发送方还可以通过其他方式获取数据接收方的公钥,在此不对数据发送方获取数据接收方的公钥的方式做具体限定。

步骤202:利用所述对称加密密钥对私密信息进行加密得到加密信息,所述私密信息包括交易接收方的区块链账户地址和数据内容。

数据发送方确定出对称加密密钥后,利用该对称加密密钥对数据私密信息进行加密处理生成加密信息,该数据私密信息中包括数据接收方的区块链账户地址和数据内容,该数据内容通常为需要保密的内容。

具体实现时,数据发送方采用对称加密算法,利用所确定出的对称加密密钥对明文形式的数据内容和数据接收方的区块链账户地址进行加密处理,生成加密信息;如前所述,该加密信息只能利用基于该数据接收方的私钥和该数据发送方的公钥生成的对称加密密钥解密。

需要说明的是,数据内容可以为交易内容,其通常可以包括借款凭证、收款凭证或者用于解密指定对象的密码。

在一种可能的应用场景中,数据接收方向数据发送方借款时,会相应地立下借款凭证,数据发送方为了保证该借款凭证的安全性,可以将其上传至区块链网络中保存;并且,为了防止区块链网络中的其他参与方获知数据接收方借款这一事件,对数据接收方造成某些影响,数据发送方在将该借款凭证上传至区块链网络之前,可以将该借款凭证和数据接收方的区块链账户地址作为私密信息,利用在步骤201中生成的对称加密密钥对该私密信息进行加密处理生成加密信息,如此,只有数据发送方和数据接收方可以成功解密该加密信息获取其中的借款凭证,同时保证了借款凭证的安全性和私密性。

在该种应用场景中,所上传的借款凭证也可以是数据发送方向数据接收方借款时立下的借款凭证,还可以是数据发送方从其他来源处获取的借款凭证,在此不对数据发送方上传的借款凭证的来源做任何限定。

在另一种可能的应用场景中,数据发送方接收到数据接收方支付的相关款项时,可以相应地立下收款凭证,数据发送方为了保证该收款凭证的安全性,可以将其上传至区块链网络中保存;并且,为了防止区块链网络中的其他参与方获知此次交易,数据发送方在将该收款凭证上传至区块链网络之前,可以将该收款凭证和数据接收方的区块链账户地址作为私密信息,利用在步骤201中生成的对称加密密钥对该私密信息进行加密处理生成加密信息,如此,只有数据发送方和数据接收方可以成功解密该加密信息获取其中的收款凭证,同时保证了收款凭证的安全性和私密性。

在该种应用场景中,所上传的收款凭证也可以是数据接收方接收到数据发送方支付相关款项时立下的收款凭证,还可以是数据发送方从其他来源处获取的收款凭证,在此不对数据发送方上传的收款凭证的来源做任何限定。

在又一种可能的应用场景中,数据发送方可以向数据接收方发送加密的指定对象,并通过区块链网络告知数据接收方用于解密该指定对象的密码,为了防止区块链网络中的其他参与方获知该密码,数据发送方可以在将该密码上传至区块链网络之前,将该密码和数据接收方的区块链账户地址作为私密信息,利用在步骤201中生成的对称加密密钥对该私密信息进行加密处理生成加密信息,如此,只有数据发送方和数据接收方才能成功解密该加密信息获取其中用于解密指定对象的密码,保证了该密码的安全性。

应理解,上述数据内容的类型仅为示例,在其他不同的应用场景下,数据内容还可以为其他不同类型的内容,在此不对数据内容的类型做任何限定。

步骤203:根据所述加密信息生成待传输数据,所述待传输数据中包括所述数据发送方的区块链账户地址和所述加密信息,并通过区块链网络将所述待传输数据记录在区块链中。

数据发送方生成加密信息后,进一步根据该加密信息生成待传输数据,该待传输数据中可以包括在步骤202中生成的加密信息以及数据发送方的区块链账户地址;进而,将所生成的待传输数据上传至区块链网络,以使区块链网络记录该待传输数据。

需要说明的是,数据发送方上传的待传输数据中包括数据发送方的区块链账户地址,一方面,可以使得数据接收方根据待传输数据中的区块链账户地址,确定数据发送方的公钥,进而便于数据接收方根据自身的私钥和数据发送方的公钥,确定用于解密加密信息的对称加密密钥;另一方面,区块链网络中的其他参与方可以根据该待传输数据中的区块链账户地址,获取该待传输数据的来源。

可选的,为了在一定程度上减少数据发送方的计算量,数据发送方经步骤201确定出对称加密密钥后,可以存储该对称加密密钥与数据接收方的区块链账户地址的对应关系,该对应关系用于在与该数据接收方进行下一次交易时确定对称加密密钥。

也就是说,数据发送方计算出该数据接收方对应的对称加密密钥后,可以构建该对称加密密钥与该数据接收方的区块链账户地址之间的对应关系,并将该对应关系存储至本地;数据发送方与某个数据接收方进行下一次数据传输时,可以先根据该数据接收方的区块链账户地址,判断自身是否存储包括该区块链账户地址的对应关系,若是,则可直接获取该对应关系中的对称加密密钥,对需要保密的数据内容进行加密处理,如此,数据发送方可以免去计算对称加密密钥,在一定程度上减少自身的计算量。

在上述数据的传输方法中,数据发送方先根据自身的私钥和具有获取数据内容权限的数据接收方的公钥确定对称加密密钥,然后利用该对称加密密钥对私密信息进行加密得到加密信息,私密信息中包括数据接收方的区块链账户地址和数据内容,进而,根据该加密信息和数据发送方的区块链账户地址生成待传输数据,上传至区块链网络。由此,数据发送方利用自身的私钥和具有获取数据内容权限的数据接收方的公钥,对需要保密的数据内容进行加密处理生成加密信息,将该加密信息添加至待传输数据中上传到区块链网络,相应地,只有具有获取该数据内容权限的数据接收方,从区块链网络中获取到该待传输数据后,才能利用自身的私钥和数据发送方的公钥成功解密待传输数据中的加密信息,获得正确的数据内容,而区块链网络中的其他参与方难以成功获取到正确的数据内容,保证了数据内容的私密性,有效地防止了隐私泄露。

下面先从数据接收方的角度出发,通过实施例对本申请提供的数据的传输方法进行介绍。

参见图3,图3为本申请实施例提供的一种数据的传输方法的流程示意图;如图3所示,数据接收方侧的数据的传输方法包括以下步骤:

步骤301:获取区块链中的待传输数据,所述待传输数据中包括加密信息和数据发送方的区块链账户地址,所述加密信息是数据发送方利用对称加密密钥对私密信息进行加密得到的。

数据接收方从区块链网络中获取数据发送方上传的待传输数据,该待传输数据中包括加密信息和数据发送方的区块链账户地址;其中,加密信息是数据发送方利用对称加密密钥对私密信息进行加密生成的,该加密信息的具体生成方式参见图2所示实施例中的步骤202。

步骤302:根据数据接收方的私钥和数据发送方的公钥,确定所述对称加密密钥。

数据接收方从区块链网络获取到待传输数据后,可以根据待传输数据中数据发送方的区块链账户地址,确定该数据发送方的公钥;进而,数据接收方根据自身的私钥以及所确定的数据发送方的公钥,计算生成对称加密密钥。

应理解,在待传输数据中,数据发送方的区块链账户地址是以明文的形式存在的,数据接收方从区块链网络中获取到待传输数据后,即可直接从该待传输数据中获取明文形式的数据发送方的区块链账户地址,数据接收方根据该数据发送方的区块链账户地址,即可相应地确定该数据发送方的公钥。

应理解,交易接收方若要成功解密交易数据中的加密信息,需要保证自身解密加密信息时采用的对称加密密钥与交易发送方计算加密信息时采用的对称加密密钥一致,相应地,交易接收方需要保证自身计算对称加密密钥时采用的算法与交易发送方计算对称加密密钥时采用的算法一致,为此,具有获取交易内容权限的交易接收方可以预先与交易发送方协商计算对称加密密钥时采用的算法,以确保交易接收方可以成功解密交易数据中的加密信息。

下面对数据接收方确定对称加密密钥的具体实现方式进行介绍:

在一种可能的实现方式中,数据接收方可以通过与数据发送方约定第一质数和第二质数来确定对称加密密钥。即,数据接收方接收数据发送方发送的数据发送方的公钥,该数据发送方的公钥是根据数据发送方与数据接收方约定的第一质数、第二质数以及数据发送方的私钥生成的,其中,第一质数大于第二质数;进而,数据接收方根据数据发送方的公钥、数据接收方的私钥以及第一质数,生成对称加密密钥。

具体的,在数据发送方和数据接收方需要协商对称加密密钥时,数据发送方和数据接收方可以先共享第一质数p和第二质数g,该第二质数g具体可以为第一质数p的本原根,第一质数p和第二质数g存在以下关系:2≤g≤p-1;第一质数p和第二质数g可以不经加密地由数据发送方发送给数据接收方,或者由数据接收方发送给数据发送方,即保证数据发送方和数据接收方均获知第一质数p和第二质数g。

然后,数据发送方可以产生一个自身的私钥a,该私钥a具体可以为数据发送方生成的随机数,其满足以下关系:1≤a≤p-1,然后,数据发送方可以根据第一质数p、第二质数g和私钥a,计算数据发送方的公钥ya,具体计算公式如式(1):

ya=gamodp(1)

数据发送方可以通过区块链网络或其他方式,使得数据接收方获取该公钥ya,数据接收方获取数据发送方的公钥的方式具体将在后续进行介绍。

相类似地,数据接收方也可以采用类似的方式生成自身的公钥,并将其发送给数据发送方;具体的,数据接收方可以产生一个自身的私钥b,该私钥b具体可以为数据接收方生成的随机数,其满足以下关系:1≤b≤p-1,然后,数据接收方可以根据第一质数p、第二质数g和私钥b,计算数据接收方的公钥yb,具体计算公式如式(2):

yb=gbmodp(2)

数据接收方可以通过区块链网络或其他方式,使得数据发送方获取该公钥yb。

数据发送方获取到数据接收方的公钥yb后,可以将该数据接收方的公钥yb作为底数,将自身的私钥a作为指数,确定乘方运算结果作为第一参数;进而,确定该第一参数与第一质数p的模值作为对称加密密钥ka。

即,数据发送方可以通过以下公式(3)计算对称加密密钥ka:

ka=(yb)amodp=(gbmodp)amodp=gb×amodp(3)

相类似地,数据接收方获取到数据发送方的公钥ya后,可以将该数据发送方的公钥ya作为底数,将自身的私钥b作为指数,确定乘方运算结果作为第二参数;进而,确定该第二参数与第一质数p的模值作为对称加密密钥kb。

即,数据接收方可以通过以下公式(4)计算对称加密密钥kb:

kb=(ya)bmodp=(gamodp)bmodp=ga×bmodp(4)

可见,数据发送方经式(3)生成的对称加密密钥ka,与数据接收方经式(4)生成的对称加密密钥kb相等。

在另一种可能的实现方式中,数据接收方还可以通过与数据发送方约定共享曲线参数中的基点来确定对称加密密钥。即,数据接收方可以接收数据发送方发送的其自身的公钥,该数据发送方的公钥是根据数据发送方和数据接收方约定的共享曲线参数中的基点以及数据发送方的私钥生成的;进而,数据接收方确定数据发送方的公钥和数据接收方的私钥的乘积,作为对称加密密钥。

具体的,数据发送方可以生成自身的私钥a,该私钥a具体可以为数据发送方生成的随机数,数据发送方利用该私钥a和共享曲线参数中的基点g生成自身的公钥a;数据发送方的公钥a具体可以是私钥a和基点g的乘积。

相类似地,数据接收方可以生成自身的私钥b,该私钥b具体可以为数据接收方生成的随机数,数据接收方利用该私钥b和共享曲线参数中的基点g生成自身的公钥b;数据接收方的公钥b具体可以是私钥b和基点g的乘积。

数据发送方可以通过区块链网络或其他方式,使得数据接收方获取到数据发送方的公钥a;相类似地,数据接收方可以通过区块链网络或其他方式,使得数据发送方获取到数据接收方的公钥b。

数据发送方获取到数据接收方的公钥b后,可以确定该数据接收方的公钥b与自身的私钥a的乘积作为对称加密密钥;相类似地,数据接收方获取到数据发送方的公钥a后,可以确定该数据发送方的公钥a与自身的私钥b的乘积作为对称加密密钥。根据数学运算原理可知,数据发送方和数据接收方确定出的对称加密密钥相等。

应理解,上述两种确定对称加密密钥的方式仅为示例,在实际应用中,数据发送方和数据接收方还可以通过其他方式确定对称加密密钥,在此不对确定对称加密密钥的方式做具体限定。

下面对数据接收方确定数据发送方的公钥的方式进行介绍:

在一种可能的实现方式中,数据发送方的区块链账户地址包括数据发送方的公钥和校验码;相应地,数据接收方可以先对数据发送方的区块链账户地址中的校验码进行校验,校验通过后,从数据发送方的区块链账户地址中获取数据发送方的公钥。

数据接收方获取数据发送方的公钥之前,可以先对数据发送方的区块链账户地址中的校验码进行校验,以判断该数据发送方的区块链账户地址中的数据发送方的公钥是否可靠;具体的,数据接收方可以采用crc算法对数据发送方的区块链账户地址中的校验码进行校验,即数据接收方采用crc算法根据数据发送方的区块链账户地址中固定位数的数据计算生成校验码,对比该校验码与数据发送方的区块链账户地址中的校验码是否一致,若二者一致,则表示校验通过,说明该数据发送方的区块链账户地址中的数据发送方的公钥可靠,可以利用该数据发送方的公钥生成对称加密密钥,反之,若二者不一致,则表示校验未通过,说明数据发送方的区块链账户地址中的数据发送方的公钥不可靠,不能利用该数据发送方的公钥计算生成对称加密密钥。

应理解,在实际应用中,数据发送方的区块链账户地址中除了可以包括数据发送方的公钥和校验码外,还可以包括其他内容,在此不对数据发送方的区块链账户地址中包括的内容做具体限定。

应理解,数据接收方除了可以采用crc算法对校验码进行校验外,还可以采用其他校验算法进行校验,在此不对所采用的校验算法做具体限定。

在另一种可能的实现方式中,数据接收方可以直接将数据发送方的区块链账户地址作为数据发送方的公钥。

在很多情况下,数据发送方的区块链账户地址实际上即为该数据发送方的公钥,相应地,数据接收方从待传输数据中获取到数据发送方的区块链账户地址后,可以直接将该数据发送方的区块链账户地址作为数据发送方的公钥,根据该数据发送方的公钥和自身的私钥计算生成对称加密密钥。

在又一种可能的实现方式中,数据接收方可以预先和数据发送方交换自身的公钥,即数据接收方将自身的公钥发送给数据发送方,数据发送方将自身的公钥发送至数据接收方,数据接收方在接收到数据发送方的公钥时,可以记录该数据发送方的公钥与该数据发送方的区块链账户地址之间的关联关系;相应地,数据接收方从待传输数据中获取到数据发送方的区块链账户地址后,可以判断自身是否记录有该区块链账户地址对应的数据发送方的公钥,若是,则可根据该数据发送方的公钥和自身的私钥计算生成对称加密密钥。应理解,除了上述三种确定数据发送方的公钥的方式外,在实际应用中,数据接收方还可以通过其他方式确定数据发送方的公钥,在此不对数据接收方确定数据发送方的公钥的方式做具体限定。

步骤303:利用所述对称加密密钥对所述加密信息进行解密得到所述私密信息,所述私密信息包括数据接收方的区块链账户地址和数据内容。

数据接收方确定出对称加密密钥后,利用所确定的对称加密密钥对待传输数据中的加密信息进行解密处理,得到数据私密信息,该数据私密信息中包括数据接收方的区块链账户地址和数据内容。

需要说明的是,无论数据接收方自身是否具备获取数据内容的权限,数据接收方经步骤302确定出对称加密密钥后,均可以利用自身确定的对称加密密钥对待传输数据中的加密信息进行解密处理;但是,只有具有获取数据内容权限的数据接收方才能根据自身的私钥和数据发送方的公钥,计算得到数据发送方加密私密信息时采用的对称加密密钥,相应地,也只有该具有获取数据内容权限的数据接收方才能解密加密信息得到正确的私密信息,而其他不具有获取数据内容权限的数据接收方,利用其自身计算得到的对称加密密钥解密加密信息得到的私密信息通常都是不正确的,具体可能表现为一系列乱码。

步骤304:当所述数据接收方的区块链账户地址与当前账户地址匹配时,从所述私密信息中获取所述数据内容。

数据接收方解密待传输数据中的加密信息得到私密信息后,将自身的账户地址与该私密信息中的数据接收方的区块链账户地址进行匹配,若二者匹配成功,则说明该数据接收方具备获取数据内容的权限,相应地,该数据接收方可以从私密信息中获取数据内容。

应理解,具备数据内容获取权限的数据接收方利用自身确定的对称加密密钥,解密加密信息可以得到正确的私密信息,相应地,该数据接收方将自身的账户地址与私密信息中的数据接收方的区块链账户地址成功匹配后,即可将私密信息中除数据接收方的区块链账户地址以外的其他内容,作为自身所要获取的数据内容;反之,不具备数据内容获取权限的数据接收方利用自身确定的对称加密密钥,解密加密信息得到的私密信息是不正确的,相应地,该数据接收方也无法成功将自身的账户地址与解密得到的私密信息中的账户地址进行匹配,如此,该数据接收方也无法从解密得到的私密信息成功获取正确的数据内容。

可选的,为了在一定程度上减少数据接收方的计算量,数据接收方经步骤302确定出对称加密密钥后,可以存储该对称加密密钥与数据发送方的区块链账户地址之间的对应关系,该对应关系用于在与该数据发送方进行下一次数据传输时确定对称加密密钥。

也就是说,数据接收方计算出该数据发送方对应的对称加密密钥后,可以构建该对称加密密钥与该数据发送方的区块链账户地址之间的对应关系,并将该对应关系存储至本地;数据接收方与某个数据发送方进行下一次数据传输时,可以先根据该数据发送方的区块链账户地址,判断自身是否存储包括该区块链账户地址的对应关系,若是,则可以直接获取该对应关系中的对称加密密钥,对待传输数据中的加密信息进行解密处理,如此,数据接收方可以免去计算对称加密密钥,一定程度上减少自身的计算量。

在上述数据的传输方法中,数据接收方从区块链网络中获取待传输数据,根据自身的私钥和数据发送方的公钥确定对称加密密钥,利用该对称加密密钥解密该待传输数据中的加密信息得到私密信息,若其中数据接收方的区块链账户地址与当前账户地址匹配,则说明该数据接收方具有获取该数据内容的权限,从而获取正确的数据内容。由此,数据发送方利用自身的私钥和具有获取数据内容权限的数据接收方的公钥,对需要保密的数据内容进行加密处理生成加密信息,将该加密信息添加至待传输数据中上传到区块链网络,相应地,只有具有获取该数据内容权限的数据接收方,从区块链网络中获取到该待传输数据后,才能利用自身的私钥和数据发送方的公钥成功解密待传输数据中的加密信息,获得正确的数据内容,而区块链网络中的其他参与方难以成功获取到正确的数据内容,保证了数据内容的私密性,有效地防止了隐私泄露。

为了便于进一步理解本申请实施例提供的数据的传输方法,下面以需要保密的数据内容为借款凭证为例,从数据发送方与数据接收方交互的角度出发,对本申请实施例提供的数据的传输方法做整体性介绍。

参见图4,图4为本申请实施例提供的数据数据的传输方法的交互信令图。

在一种应用场景中,数据接收方403向数据发送方401借款,数据发送方401为了保证自身的权益,在借款给数据接收方403时立下借款凭证,并且为了保证该借款凭证的安全性,数据发送方401可以将该借款凭证上传至区块链网络402中保存;同时,为了避免区块链网络402的其他参与方从区块链网络中获取到该借款凭证,对数据接收方403造成不良的影响,数据发送方401在将该借款凭证上传至区块链网络402之前,先对该借款凭证进行加密处理。

具体实现时,数据发送方401可以先根据数据接收方403的区块链账户地址,确定数据接收方403的公钥;具体的,数据发送方401可以先对该数据接收方403的区块链账户地址中的校验码进行校验,在校验通过的情况下,数据发送方401可以确定该数据接收方403的区块链账户地址中的数据接收方403的公钥可靠;相应地,数据发送方401可以从该数据接收方403的区块链账户地址中获取数据接收方403的公钥,进而利用自身的私钥和该数据接收方403的公钥确定对称加密密钥。

数据发送方401将需要保密的借款凭证和具有查看该借款凭证权限的数据接收方403的区块链账户地址作为私密信息,利用所确定的对称加密密钥,对该私密信息进行加密处理生成加密信息;进而,数据发送方401将该加密信息和自身的区块链账户地址作为待传输数据,上传至区块链网络402,以使区块链网络402记录该待传输数据。

当数据接收方403想要查看该借款凭证时,数据接收方403可以从区块链网络402中获取数据发送方401上传的待传输数据,根据该待传输数据中的数据发送方401的区块链账户地址,确定该数据发送方401的公钥;具体的,数据接收方403可以先对该数据发送方401的区块链账户地址的校验码进行校验,在校验通过的情况下,数据接收方403可以确定该数据发送方401的区块链账户地址中的数据发送方401的公钥可靠,进而从该数据发送方401的区块链账户地址中获取数据发送方401的公钥;数据接收方403根据自身的私钥和数据发送方401的公钥确定对称加密密钥。

数据接收方403利用该对称加密密钥,对待传输数据中的加密信息进行解密处理得到私密信息;数据接收方403将自身的账户地址与该私密信息中的数据接收方的区块链账户地址进行匹配,若匹配成功,数据接收方403可以直接获取私密信息中的借款凭证。

针对上文描述的数据的传输方法,本申请还提供了对应的数据的传输装置,以使上述数据的传输方法在实际中得以应用和实现。

参见图5,图5是与上文图2所示的数据的传输方法对应的一种数据的传输装置500的结构示意图,该数据的传输装置500包括:

确定模块501,用于根据数据接收方的公钥和数据发送方的私钥,确定对称加密密钥;

加密模块502,用于利用所述对称加密密钥对私密信息进行加密得到加密信息,所述私密信息包括数据接收方的区块链账户地址和数据内容;

传输模块503,用于根据所述加密信息生成待传输数据,所述待传输数据中包括所述加密信息和所述数据发送方的区块链账户地址,并通过区块链网络将所述待传输数据记录在区块链中。

可选的,在图5所示的数据的传输装置的基础上,所述确定模块501具体用于:

接收数据接收方发送的所述数据接收方的公钥,所述数据接收方的公钥是根据数据发送方与数据接收方约定的第一质数和第二质数以及所述数据接收方的私钥生成的;其中,所述第一质数大于所述第二质数;

根据所述数据接收方的公钥和所述数据发送方的私钥以及所述第一质数,生成所述对称加密密钥。

可选的,在图5所示的数据的传输装置的基础上,所述确定模块501具体用于:

以所述数据接收方的公钥作为底数并以所述所述数据发送方的私钥作为指数,确定乘方运算结果作为第一参数;

确定所述第一参数与第一质数的模值,作为所述对称加密密钥。

可选的,在图5所示的数据的传输装置的基础上,所述确定模块501具体用于:

接收数据接收方发送的所述数据接收方的公钥,所述数据接收方的公钥是根据数据发送方与数据接收方约定的共享曲线参数中的基点以及所述数据接收方的私钥生成的;

确定所述数据接收方的公钥和所述数据发送方的私钥的乘积,作为所述对称加密密钥。

可选的,所述数据接收方的区块链账户地址包括所述数据接收方的公钥和校验码;则在图5所示的数据的传输装置的基础上,参见图6,图6为本申请实施例提供的另一种数据的传输装置600的结构示意图;该数据的传输装置600还包括:

第一公钥获取模块601,用于对所述数据接收方的区块链账户地址中的校验码进行校验,校验通过后,从所述数据接收方的区块链账户地址中获取所述数据接收方的公钥。

可选的,在图5所示的数据的传输装置的基础上,参见图7,图7为本申请实施例提供的另一种数据的传输装置700的结构示意图;该数据的传输装置700还包括:

第二公钥获取模块701,用于将所述数据接收方的区块链账户地址作为所述数据接收方的公钥。

可选的,所述数据内容包括借款凭证、收款凭证或者用于解密指定对象的密码。

可选的,在图5所示的数据的传输装置的基础上,参见图8,图8为本申请实施例提供的另一种数据的传输装置800的结构示意图;该数据的传输装置800还包括:

存储模块801,用于存储所述对称加密密钥与所述数据接收方的区块链账户地址的对应关系,所述对应关系用于在与数据接收方进行下一次数据传输时确定对称加密密钥。

在上述数据的传输装置中,数据发送方先根据自身的私钥和具有获取数据内容权限的数据接收方的公钥确定对称加密密钥,然后利用该对称加密密钥对私密信息进行加密得到加密信息,私密信息中包括数据接收方的区块链账户地址和数据内容,进而,根据该加密信息和数据发送方的区块链账户地址生成待传输数据,上传至区块链网络。由此,数据发送方利用自身的私钥和具有获取数据内容权限的数据接收方的公钥,对需要保密的数据内容进行加密处理生成加密信息,将该加密信息添加至待传输数据中上传到区块链网络,相应地,只有具有获取该数据内容权限的数据接收方,从区块链网络中获取到该待传输数据后,才能利用自身的私钥和数据发送方的公钥成功解密待传输数据中的加密信息,获得正确的数据内容,而区块链网络中的其他参与方难以成功获取到正确的数据内容,保证了数据内容的私密性,有效地防止了隐私泄露。

参见图9,图9是与上文图3所示的数据的传输方法对应的一种数据的传输装置900的结构示意图,该数据的传输装置900包括:

接收模块901,用于获取区块链中的待传输数据,所述待传输数据中包括加密信息和数据发送方的区块链账户地址,所述加密信息是数据发送方利用对称加密密钥对私密信息进行加密得到加密信息;

确定模块902,用于根据数据接收方的私钥和数据发送方的公钥,确定所述对称加密密钥;

解密模块903,用于利用所述对称加密密钥对所述加密信息进行解密得到所述私密信息,所述私密信息包括数据接收方的区块链账户地址和数据内容;

获取模块904,用于当所述私密信息中的数据接收方的区块链账户地址与当前账户地址匹配,从所述私密信息中获取所述数据内容。

可选的,在图9所示的数据的传输装置的基础上,所述确定模块902具体用于:

接收数据发送方发送的所述数据发送方的公钥,所述数据发送方的公钥是根据数据发送方与数据接收方约定的第一质数和第二质数以及所述数据发送方的私钥生成的;其中,所述第一质数大于所述第二质数;

根据所述数据发送方的公钥和所述数据接收方的私钥以及所述第一质数,生成所述对称加密密钥。

可选的,在图9所示的数据的传输装置的基础上,所述确定模块902具体用于:

以所述数据发送方的公钥作为底数并以所述所述数据接收方的私钥作为指数,确定乘方运算结果作为第二参数;

确定所述第二参数与第一质数的模值,作为所述对称加密密钥。

可选的,在图9所示的数据的传输装置的基础上,所述确定模块902具体用于:

接收数据发送方发送的所述数据发送方的公钥,所述数据发送方的公钥是根据数据发送方与数据接收方约定的共享曲线参数中的基点以及所述数据发送方的私钥生成的;

确定所述数据发送方的公钥和所述数据接收方的私钥的乘积,作为所述对称加密密钥。

可选的,所述数据发送方的区块链账户地址包括所述数据发送方的公钥和校验码;则在图9所示的数据的传输装置的基础上,参见图10,图10为本申请实施例提供的另一种数据的传输装置1000的结构示意图;该数据的传输装置1000还包括:

第一公钥获取模块1001,用于对所述数据发送方的区块链账户地址中的校验码进行校验,校验通过后,从数据发送方的区块链账户地址中获取所述数据发送方的公钥。

可选的,在图9所示的数据的传输装置的基础上,参见图11,图11为本申请实施例提供的另一种数据的传输装置1100的结构示意图;该数据的传输装置1100还包括:

第二公钥获取模块1101,用于将所述数据发送方的区块链账户地址作为所述数据发送方的公钥。

可选的,在图9所示的数据的传输装置的基础上,参见图12,图12为本申请实施例提供的另一种数据的传输装置1200的结构示意图;该数据的传输装置1200还包括:

存储模块1201,用于存储所述对称加密密钥与所述数据发送方的区块链账户地址的对应关系,所述对应关系用于在与数据发送方进行下一次数据传输时确定对称加密密钥。

在上述数据的传输装置中,数据接收方从区块链网络中获取待传输数据,根据自身的私钥和数据发送方的公钥确定对称加密密钥,利用该对称加密密钥解密该待传输数据中的加密信息得到私密信息,若其中数据接收方的区块链账户地址与当前账户地址匹配,则说明该数据接收方具有获取该数据内容的权限,从而获取正确的数据内容。由此,数据发送方利用自身的私钥和具有获取数据内容权限的数据接收方的公钥,对需要保密的数据内容进行加密处理生成加密信息,将该加密信息添加至待传输数据中上传到区块链网络,相应地,只有具有获取该数据内容权限的数据接收方,从区块链网络中获取到该待传输数据后,才能利用自身的私钥和数据发送方的公钥成功解密待传输数据中的加密信息,获得正确的数据内容,而区块链网络中的其他参与方难以成功获取到正确的数据内容,保证了数据内容的私密性,有效地防止了隐私泄露。

本申请还提供了一种用于进行传输数据的设备,该设备具体可以为服务器,参见图13,图13是本申请实施例提供的一种用于进行传输数据的服务器结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)1322(例如,一个或一个以上处理器)和存储器1332,一个或一个以上存储应用程序1342或数据1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1322可以设置为与存储介质1330通信,在服务器1300上执行存储介质1330中的一系列指令操作。

服务器1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358,和/或,一个或一个以上操作系统1341,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述实施例中由数据发送方或数据接收方所执行的步骤可以基于该图13所示的服务器结构。

其中,cpu1322用于执行如下步骤:

根据数据接收方的公钥和数据发送方的私钥,确定对称加密密钥;

利用所述对称加密密钥对私密信息进行加密得到加密信息,所述私密信息包括数据接收方的区块链账户地址和数据内容;

根据所述加密信息生成待传输数据,所述待传输数据中包括所述数据发送方的区块链账户地址和所述加密信息,并通过区块链网络将所述待传输数据记录在区块链中。

或者,

接收区块链中的待传输数据,所述待传输数据中包括加密信息和数据发送方的区块链账户地址,所述加密信息是数据发送方利用对称加密密钥对私密信息进行加密得到的;

根据数据接收方的私钥和数据发送方的公钥,确定所述对称加密密钥;

利用所述对称加密密钥对所述加密信息进行解密得到所述私密信息,所述私密信息包括数据收方的区块链账户地址和数据内容;

当所述数据接收方的区块链账户地址与当前账户地址匹配时,从所述私密信息中获取所述数据内容。

可选的,cpu1322还可以执行本申请实施例中数据的传输方法任一具体实现方式的方法步骤。

本申请实施例还提供了另一种用于传输数据的设备,该设备可以为终端设备,如图14所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(personaldigitalassistant,pda)、销售终端(pointofsales,pos)、车载电脑等任意终端设备,以终端为手机为例:

图14示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图14,手机包括:射频(英文全称:radiofrequency,英文缩写:rf)电路1410、存储器1420、输入单元1430、显示单元1440、传感器1450、音频电路1460、无线保真(英文全称:wirelessfidelity,英文缩写:wifi)模块1470、处理器1480、以及电源1490等部件;其中,输入单元1430中包括输入面板1431和其他输入设备1432,显示单元1440中包括显示面板1441,音频电路1460中包括扬声器1461和传声器1462。

本领域技术人员可以理解,图14中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

在本申请实施例中,该终端所包括的处理器1480具有以下功能:

根据数据接收方的公钥和数据发送方的私钥,确定对称加密密钥;

利用所述对称加密密钥对私密信息进行加密得到加密信息,所述私密信息包括数据接收方的区块链账户地址和数据内容;

根据所述加密信息生成待传输数据,所述待传输数据中包括所述数据发送方的区块链账户地址和所述加密信息,并通过区块链网络将所述待传输数据记录在区块链中。

或者,

接收区块链中的待传输数据,所述待传输数据中包括加密信息和数据发送方的区块链账户地址,所述加密信息是数据发送方利用对称加密密钥对私密信息进行加密得到的;

根据数据接收方的私钥和数据发送方的公钥,确定所述对称加密密钥;

利用所述对称加密密钥对所述加密信息进行解密得到所述私密信息,所述私密信息包括数据接收方的区块链账户地址和数据内容;

当所述数据接收方的区块链账户地址与当前账户地址匹配时,从所述私密信息中获取所述数据内容。

可选的,处理器1480还可以执行本申请实施例中数据的传输方法任一具体实现方式的方法步骤。

本申请实施例还提供一种计算机可读存储介质,用于存储程序代码,该程序代码用于执行前述各个实施例所述的一种数据的传输方法中的任意一种实施方式。

本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种数据的传输方法中的任意一种实施方式。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文缩写:rom)、随机存取存储器(英文全称:randomaccessmemory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

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