数据交易方法及系统、平台、存储介质转让专利

申请号 : CN201811613027.2

文献号 : CN109711841B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李佳袁一潘晓良张伟

申请人 : 石更箭数据科技(上海)有限公司

摘要 :

一种数据交易方法及系统、平台、存储介质,所述数据交易方法包括:分别接收来自数据发出者的密文数据、原始明文哈希值及重加密密钥,再对所述重加密密钥进行验证,得到验证结果,在验证结果为正确时,采用所述重加密密钥对所述密文数据进行重加密,得到重加密数据,并发送至所述数据接收者,使得所述数据接收者对所述重加密数据进行解密,得到解密数据。采用上述数据交易方法能够减少数据交易纠纷,提高数据交易的安全性。

权利要求 :

1.一种数据交易方法,其特征在于,包括:

分别接收来自数据发出者的密文数据、原始明文哈希值及重加密密钥,所述密文数据为采用所述数据发出者的公钥对交易数据加密后得到,所述重加密密钥为基于所述数据发出者的私钥及向所述数据发出者发送的数据接收者的公钥生成,所述重加密密钥包括重加密密钥核心部分、定长随机数和哈希值;

对所述重加密密钥进行验证,得到验证结果;

在所述验证结果为正确时,采用所述重加密密钥对所述密文数据进行重加密,得到重加密数据,并发送至所述数据接收者,使得所述数据接收者对所述重加密数据进行解密,得到解密数据;

其中,所述对所述重加密密钥进行验证,得到验证结果,包括:获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数;

拼接所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数,得到拼接值;

对所述拼接值进行哈希计算,得到所述拼接值的哈希值;

对比所述拼接值的哈希值与所述重加密密钥的哈希值是否一致,得到所述验证结果。

2.根据权利要求1所述的数据交易方法,其特征在于,还包括:在所述验证结果为错误时,向所述数据发出者发送所述验证结果,使得所述数据发出者重新发送重加密密钥。

3.根据权利要求1所述的数据交易方法,其特征在于,在获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数之前,还包括:验证所述重加密密钥的总长度为预设长度值。

4.根据权利要求1所述的数据交易方法,其特征在于,在向所述数据发出者发送所述数据接收者的公钥前,还包括:接收所述数据接收者对所述交易的预付款。

5.根据权利要求4所述的数据交易方法,其特征在于,基于智能合约接收所述数据接收者对所述交易的预付款。

6.根据权利要求1所述的数据交易方法,其特征在于,所述重加密密钥在离线状态生成。

7.根据权利要求1所述的数据交易方法,其特征在于,所述数据接收者包括多个,所述重加密密钥为基于所述数据发出者的私钥及各数据接收者的公钥分别生成。

8.根据权利要求1所述的数据交易方法,其特征在于,所述对所述重加密数据进行解密,得到解密数据之后,还包括:所述数据接收者用解密后的明文哈希值与所述原始明文哈希值进行验证,并在验证正确时,确定所述解密数据为交易数据。

9.一种数据交易系统,其特征在于,包括:

第一接收单元,被配置为分别接收来自数据发出者的密文数据、原始明文哈希值及重加密密钥,所述密文数据为采用所述数据发出者的公钥对交易数据加密后得到,所述重加密密钥为基于所述数据发出者的私钥及向所述数据发出者发送的数据接收者的公钥生成,所述重加密密钥包括重加密密钥核心部分、定长随机数和哈希值;

验证单元,被配置为对所述重加密密钥进行验证,得到验证结果;

重加密数据生成单元,被配置为在所述验证结果为正确时,采用所述重加密密钥对所述密文数据进行重加密,得到重加密数据;

第一发送单元,被配置为将所述重加密数据发送至所述数据接收者,使得所述数据接收者对所述重加密数据进行解密,得到解密数据;

其中,所述验证单元包括:

获取子单元,被配置为获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数;

拼接子单元,被配置为拼接所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数,得到拼接值;

哈希计算子单元,被配置为对所述拼接值进行哈希计算,得到所述拼接值的哈希值;

验证子单元,被配置为对比所述拼接值的哈希值与所述重加密密钥的哈希值是否一致,得到验证结果。

10.根据权利要求9所述数据交易系统,其特征在于,还包括:第二发送单元,被配置为所述验证结果为错误时,向所述数据发出者发送所述验证结果,使得所述数据发出者重新发送重加密密钥。

11.根据权利要求9所述的数据交易系统,其特征在于,所述验证单元还包括:总长度验证子单元,被配置为验证所述重加密密钥的总长度为预设长度值。

12.根据权利要求9所述的数据交易系统,其特征在于,还包括:第二接收单元,被配置为在向所述数据发出者发送所述数据接收者的公钥前,接收所述数据接收者对所述交易的预付款。

13.一种数据交易平台,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令时执行权利要求1至8任一项所述数据交易方法的步骤。

14.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至8任一项所述数据交易方法的步骤。

说明书 :

数据交易方法及系统、平台、存储介质

技术领域

[0001] 本发明实施例涉及计算机技术领域,尤其涉及数据交易方法及系统、平台、存储介质。

背景技术

[0002] 数据作为信息的载体,往往具有一定的价值,为了极大利用数据的价值,数据交易成为了数据应用的重要行为。因此,在数据交易过程中,保证数据内容的安全性成为了数据交易的关键。
[0003] 目前,为了实现数据的交易,通常会通过第三方交易平台来实现交易双方的数据交易。
[0004] 然而,采用上述方案,可能存在交易欺诈的情况,交易安全性得不到保障。

发明内容

[0005] 本发明实施例解决的问题是如何提高数据交易的安全性。
[0006] 为解决上述技术问题,本发明实施例提供一种数据交易方法,包括:分别接收来自数据发出者的密文数据、原始明文哈希值及重加密密钥,所述密文数据为采用所述数据发出者的公钥对交易数据加密后得到,所述重加密密钥为基于所述数据发出者的私钥及向所述数据发出者发送的数据接收者的公钥生成;对所述重加密密钥进行验证,得到验证结果;在所述验证结果为正确时,采用所述重加密密钥对所述密文数据进行重加密,得到重加密数据,并发送至所述数据接收者,使得所述数据接收者对所述重加密数据进行解密,得到解密数据。
[0007] 可选地,还包括:在所述验证结果为错误时,向所述数据发出者发送所述验证结果,使得所述数据发出者重新发送重加密密钥。
[0008] 可选地,所述对所述重加密密钥进行验证,得到验证结果,包括:获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数:拼接所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数,得到拼接值;对所述拼接值进行哈希计算,得到所述拼接值的哈希值:对比所述拼接值的哈希值与所述重加密密钥的哈希值是否一致,得到所述验证结果。
[0009] 可选地,在获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数之前,还包括:验证所述重加密密钥的总长度为预设长度值。
[0010] 可选地,在向所述数据发出者发送所述数据接收者的公钥前,还包括:接收所述数据接收者对所述交易的预付款。
[0011] 可选地,基于智能合约接收所述数据接收者对所述交易的预付款。
[0012] 可选地,所述重加密密钥在离线状态生成。
[0013] 可选地,所述数据接收者包括多个,所述重加密密钥为基于所述数据发出者的私钥及各数据接收者的公钥分别生成。
[0014] 可选地,所述对所述重加密数据进行解密,得到解密数据之后,还包括:所述数据接收者用解密后的明文哈希值与所述原始明文哈希值进行验证,并在验证正确时,确定所述解密数据为交易数据。
[0015] 本发明实施例还提供了一种数据交易系统,包括:第一接收单元,被配置为分别接收来自数据发出者的密文数据、原始明文哈希值及重加密密钥,所述密文数据为采用所述数据发出者的公钥对交易数据加密后得到,所述重加密密钥为基于所述数据发出者的私钥及向所述数据发出者发送的数据接收者的公钥生成:验证单元,被配置为对所述重加密密钥进行验证,得到验证结果;重加密数据生成单元,被配置为在所述验证结果为正确时,采用所述重加密密钥对所述密文数据进行重加密,得到重加密数据;第一发送单元,被配置为将所述重加密数据发送至所述数据接收者,使得所述数据接收者对所述重加密数据进行解密,得到解密数据。
[0016] 可选地,还包括:第二发送单元,被配置为所述验证结果为错误时,向所述数据发出者发送所述验证结果,使得所述数据发出者重新发送重加密密钥。
[0017] 可选地,所述验证单元包括:获取子单元,被配置为获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数;拼接子单元,被配置为拼接所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数,得到拼接值;哈希计算子单元,被配置为对所述拼接值进行哈希计算,得到所述拼接值的哈希值;验证子单元,被配置为对比所述拼接值的哈希值与所述重加密密钥的哈希值是否一致,得到验证结果。
[0018] 可选地,所述验证单元还包括:总长度验证子单元,被配置为验证所述重加密密钥的总长度为预设长度值。
[0019] 可选地,还包括:第二接收单元,被配置为在向所述数据发出者发送所述数据接收者的公钥前,接收所述数据接收者对所述交易的预付款。
[0020] 本发明实施例还提供了一种数据交易平台,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一项所述数据交易方法的步骤。
[0021] 本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一项所述数据交易方法的步骤。
[0022] 与现有技术相比,本发明实施例的技术方案具有以下有益效果:
[0023] 采用本发明实施例,首先分别接收来自数据发出者的密文数据、原始明文哈希值及重加密密钥,对所述重加密密钥进行验证,得到验证结果,在验证结果为正确时,再采用所述重加密密钥对所述密文数据进行重加密,得到重加密数据,并发送至数据接收者,使得所述数据接收者对所述重加密数据进行解密,得到解密数据。这一数据交易过程中由于对重加密密钥进行了验证,因此可以避免使用错误的重加密密钥进行重加密,进而可以避免重加密密钥被恶意篡改情况下发生交易,可以避免交易欺诈,减少交易纠纷,进一步提高数据交易的安全性。
[0024] 进一步地,对重加密密钥验证,当验证结果为错误时,向所述数据发出者发送验证结果,使得所述数据发出者重新发送重加密密钥。将验证结果发送给数据发出者,可以使数据发出者及时得知交易发生中断的原因,进一步提高数据交易的效率。
[0025] 进一步地,通过获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数,并将三者进行拼接,得到拼接值,对所述拼接值进行哈希计算,得到所述拼接值的哈希值,对比所述拼接值的哈希值与重加密密钥的哈希值是否一致,即可得到验证结果,故可以保证数据交易的安全性。
[0026] 进一步地,在获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数之前,对重加密密钥的总长度进行验证,可以基于验证结果判定是否需要进行下一步的验证步骤,进一步提高验证效率。
[0027] 进一步地,在向所述数据发出者发送数据接收者的公钥时,接收所述数据接收者对所述交易的预付款,可以避免所述数据接收者对所述重加密数据解密验证,得到交易数据而不进行付款的情况发生,因而可以进一步减少交易纠纷。
[0028] 进一步地,所述重加密密钥在离线状态生成,可以避免所述重加密密钥生成过程泄露所述数据发出者的私钥,因而可以进一步提高数据交易的安全性。
[0029] 进一步地,由于数据接收者包括多个,重加密密钥为基于数据发出者的私钥及各数据接收者的公钥生成,因而可以实现一个数据发出者与多个数据接收者交易同一数据通过一个订单进行交易,而无须通过多个订单分别完成,因而可以进一步提高数据交易的效率。

附图说明

[0030] 图1是本发明实施例中一种数据交易方法的流程图;
[0031] 图2是图1对所述重加密密钥验证的流程图;
[0032] 图3是本发明实施例另一种数据交易方法的流程图;
[0033] 图4是本发明实施例中一种数据交易系统的结构示意图。

具体实施方式

[0034] 如背景技术所述,现有的数据交易方法难以避免交易欺诈,例如数据发出者可能上传错误的重加密密钥,因而数据交易方法有待优化。
[0035] 在本发明实施例中,通过对重加密密钥进行验证,得到验证结果,在验证结果正确时才采用重加密密钥对交易数据进行重加密,因而能够避免使用错误的重加密密钥进行重加密,进而能够避免交易欺诈,提高数据交易的安全性。
[0036] 为使本发明实施例的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
[0037] 图1是本发明实施例中一种数据交易方法的流程图,以下通过具体步骤进行详细说明:
[0038] S11,分别接收来自数据发出者的密文数据、原始明文哈希值及重加密密钥。
[0039] 在具体实施中,数据发出者为了防止数据被非交易双方的第三方窃取,可以对交易数据进行加密,得到密文数据,然后将密文数据发送至数据交易平台。加密是将明文信息隐匿起来,使之在缺少解密密钥时不可读,增强了数据交易的安全性。
[0040] 在具体实施中,数据发出者可以采用预设的一种或多种加密算法对交易数据进行加密以得到密文数据,加密算法可以为椭圆曲线加密算法、数字签名算法等。
[0041] 所述重加密密钥可以基于数据发出者的私钥及数据接收者的公钥生成。在具体实施中,当数据接收者与数据发出者在订单建立时,数据接收者可以通过数据交易平台向数据发出者发送自身的公钥,数据发出者可以基于自身的私钥及所述数据接收者的公钥生成重加密密钥。
[0042] 数据交易平台在接收来自数据发出者的密文数据、原始明文哈希值及重加密密钥后,可以将三者存储在数据交易平台的云存储中。
[0043] 在具体实施中,数据发出者和数据接收者可以利用预设的公私钥对生成器生成各自对应的公私钥对。所述公私钥对生成器可以通过软件方式实现,也可以为离线的硬件密钥生成工具。
[0044] 在具体实施中,交易数据可以是各种类型的真实数据记录或虚拟数据。利如对于车联网领域,可以是关于车上各种传感器检测到的车况信息、零部件信息或使用信息,如胎压、油耗、车体水平度、燃油量、维修记录、行驶记录和保险记录等。
[0045] S12,对所述重加密密钥进行验证。
[0046] 在具体实施中,可以采用多种方式对所述重加密密钥进行验证。为了避免验证过程导致密钥泄露,可以采用零知识证明方式进行验证。
[0047] 在具体实施中,在对所述重加密密钥进行验证时,也可以采用对所述重加密密钥的时间戳进行验证,或者,也可以用数字签名的方式进行验证。
[0048] S13,判断验证结果是否正确。
[0049] 在具体实施中,如果是,则执行步骤S14,否则执行步骤S15。
[0050] S14,采用所述重加密密钥对所述密文数据进行重加密,得到重加密数据,并发送至所述数据接收者,使得所述数据接收者对所述重加密数据进行解密,得到解密数据。
[0051] 在具体实施中,数据交易平台通过代理重加密算法,使用所述重加密密钥对所述密文数据进行重加密,得到重加密数据。
[0052] S15,向数据发出者发送验证结果,使得所述数据发出者重新发送重加密密钥。
[0053] 在具体实施中,对重加密密钥验证,当验证结果为错误时,作为一种可选方案,向所述数据发出者发送验证结果,使得所述数据发出者重新发送重加密密钥以继续完成交易。
[0054] 在具体实施中,若数据发出者认为自己的重加密密钥为正确时,可以再次发送所述重加密密钥。若数据发出者发现自己的重加密密钥是错误时,可以重新生成一个新的重加密密钥并再次发送。
[0055] 将验证结果发送给数据发出者,可以使数据发出者及时得知交易发生中断的原因,可以进一步提高数据交易的效率。
[0056] 采用上述实施例,分别接收来自数据发出者的密文数据、原始明文哈希值及重加密密钥,对所述重加密密钥进行验证,得到验证结果,在验证结果为正确时,采用所述重加密密钥对所述密文数据进行重加密,得到重加密数据,并发送给数据接收者进行解密,得到解密数据。由于这一过程对重加密密钥进行验证,可以避免使用错误的重加密密钥进行重加密,进而避免数据发出者发出错误的重加密密钥或者在发送重加密密钥时被恶意篡改的情况下发送交易,因而可以避免交易欺诈,减少交易纠纷,进一步提高数据交易的安全性。
[0057] 为使本领域技术人员更好的理解和实现本发明实施例,以下参照图2,对本发明实施例采用的一种零知识证明方式通过具体步骤进一步详细描述。
[0058] 如图2所示,在本发明一实施例中,可以采用如下步骤对重加密密钥进行验证:
[0059] S121,获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数。
[0060] 在具体实施中,可以采用预设的随机数生成器生成重加密密钥的定长随机数。
[0061] 在具体实施中,定长随机数可以是字符串、数字或者两者组合。
[0062] S122,拼接所述数据发出者的公钥、数据接收者的公钥和重加密密钥的定长随机数,得到拼接值。
[0063] 在具体实施中,可以按照预设的顺序对数据发出者的公钥、数据接收者的公钥和重加密密钥的定长随机数进行拼接。
[0064] S123,对所述拼接值进行哈希计算,得到所述拼接值的哈希值。
[0065] 在具体实施中,采用预设的哈希算法对所述拼接值进行哈希计算,得到所述拼接值的哈希值。
[0066] S124,对比所述拼接值的哈希值与重加密密钥的哈希值是否一致,得到验证结果。
[0067] 在具体实施中,可以根据验证结果,执行下一步预设步骤。如前所述,若验证结果一致,则所述重加密密钥为正确,如图1所示,可以执行步骤S14若验证结果不一致,则重加密密钥为错误,如图1所示,可以执行步骤S15。
[0068] 采用上述实施例,对获取的数据发出者的公钥、数据接收者的公钥及重加密密钥的定长随机数进行拼接,再通过哈希计算得到拼接值的哈希值,对比重加密密钥的哈希值与拼接值的哈希值是否一致,得到验证结果,故可以保证数据交易的安全性。
[0069] 在具体实施中,为进一步提高验证效率,在步骤S121之前还可以包括:验证重加密密钥的总长度为预设长度值。
[0070] 在具体实施中,重加密密钥的预设长度值是固定的,通过验证所述重加密密钥的总长度是否为预设长度值,可以根据验证结果判定是否执行下一步预设步骤。
[0071] 例如,重加密密钥的预设长度值为56位,若验证重加密密钥的总长度为64位,则重加密密钥验证失败,把验证结果返回给数据发出者。若验证重加密密钥的总长度与预设长度一致,则重加密密钥验证成功,便可执行步骤S121~S124。步骤S121~S124的具体实施方式可参见以上发明实施例,在此不再赘述。
[0072] 采用上述实施例,在获取所述数据发出者的公钥、数据接收者的公钥和所述重加密密钥的定长随机数之前,对重加密密钥的总长度进行验证,可以基于验证结果判定是否需要进行下一步的验证步骤,进一步提高了验证效率。
[0073] 在具体实施中,还可以采用其他的方式对重加密密钥进行验证。例如,可以对重加密密钥的时间戳进行验证,验证生成重加密密钥时的特定时间点是否为预设时间点。或者,可以用数字签名的方式对重加密密钥进行验证,验证摘要是否为预设摘要。
[0074] 为使本领域技术人员更好地理解和实现本发明实施例,以下参照附图3,通过具体的应用场景进行详细说明。
[0075] 随着各种传感器的使用,产生大量数据,对所产生的大量数据进行挖掘分析可以创造出意想不到的价值,因而目前存在对各种数据上进行交易的需求。例如,对车辆的行车记录仪记录的路况信息、胎压、维修记录等各种车辆相关信息进行分析,可以开发出更加满足用户需求的车辆。然而,车辆用户与车数据买方直接交易可能会存在侵犯用户隐私的问题,为此,可以采用本发明实施例中的如下数据交易方法进行数据交易。
[0076] 如图3所示,以下对本发明实施例实现数据交易的具体步骤进行详细描述:
[0077] S301,数据发出者A加密交易数据。
[0078] 在交易开始前,数据发出者A可以把想交易的数据发送给数据交易平台B,数据交易平台B可以对交易的数据进行处理,提取出预设的元数据关键词并展示,意向购买者可以藉此决定是否购买。
[0079] 在具体实施中,数据发出者A在把交易数据发送给数据交易平台B之前,为保护数据安全,需要对数据进行加密。
[0080] 数据发出者A可以利用预设的公私钥对生成器生成公钥PkA与私钥SkA。并用公钥PkA对交易数据进行加密,得到密文数据EncryptA。在具体实施中,所述公私钥对生成器可以通过软件的方式实现,也可以以硬件离线工具的形式实现,或者通过软件硬件结合的方式实现。
[0081] S302,数据发出者A向数据交易平台B发送密文数据EncryptA和原始明文哈希值HashA。
[0082] 在具体实施中,数据交易平台B可以将从数据发出者A接收到的密文数据EncryptA和原始明文哈希值HashA存储在云存储中。
[0083] S303,数据发出者A与数据接收者C生成一个交易订单。
[0084] 在具体实施中,数据接收者C可以通过数据交易平台B向数据发出者A发送订单邀约请求,数据发出者A同意数据接收者C的订单邀约请求时,即可生成一个交易订单。
[0085] 在具体施中,数据发出者A和数据接收者C可以就具体的交易细节进行沟通,例如交易价格的协商、交易数据的时间段等。
[0086] 在本发明实施中,数据发出者A和数据接收者C可以通过区块链的智能合约的形式执行交易协商的过程。
[0087] 在具体实施中,智能合约中可以包含数据交换双方的身份信息、交换的数据的特征信息、双方应遵守的数据使用规范以及违约时的惩罚措施等信息,这样在数据接收者C得到交易数据后,如果发现有与合约描述不相符的地方,数据接收者C可以触发智能合约自动采取相应的措施。
[0088] 在具体实施中,可以通过区块链的方式将智能合约进行存储。
[0089] 采用智能合约的方式来进行数据交易,可以提高交易数据的可信赖度,保证了交易双方的利益。且通过区块链的方式将智能合约进行存储,可以进一步提升合约数据的安全性,进而保证数据交易的安全性。
[0090] 在具体实施中,可以利用第三方平台来生成一个交易订单。例如,可以基于数据发出者A和数据接收者C达成的交易约定并由第三方平台来生成一个交易订单。
[0091] S304,数据接收者C向数据交易平台B发送预付款和公钥PkC。
[0092] 在本发明实施例中,数据发出者A和数据接收者C以区块链的智能合约的形式达成的交易时,数据接收者C可以基于智能合约的约定信息对数据交易平台B进行预付款并发送公钥PkC。
[0093] 在具体实施中,数据接收者C的预付款和公钥PkC在发送给数据交易平台B时可以没有时序限定,即:可以先付预付款后发送公钥PkC,也可以先发送公钥PkC后预付款,还可以两者同时发送。
[0094] 数据接收者C可以利用预设的公私钥对生成器生成公钥PkC与私钥SkC。在具体实施中,所述公私钥对生成器可以通过软件的方式实现,也可以以硬件离线工具的形式实现,或者通过软件硬件结合的方式实现。
[0095] 在具体实施中,数据接收者C可以把预付款发送至第三方平台。
[0096] S305,数据交易平台B向数据发出者A发送公钥PkC。
[0097] S306,数据发出者A生成重加密密钥。
[0098] 在具体实施中,数据发出者A可以利用自己的私钥SkA和数据接收者C的公钥PkC生成得到重加密密钥RekeyAC。
[0099] 数据发出者A可以利用预设的密钥生成器生成重加密密钥RekeyAC。在具体实施中,所述密钥生成器可以通过软件的方式实现,也可以以硬件离线工具的形式实现,或者通过软件硬件结合的方式实现。
[0100] S307,数据发出者A发送重加密密钥RekeyAC至数据交易平台B。
[0101] 在具体实施中,数据交易平台B可以把重加密密钥RekeyAC存储在云存储中。
[0102] S308,数据交易平台B对重加密密钥RekeyAC验证。
[0103] 在本发明实施例中,数据交易平台B可以利用零知识证明方式对重加密密钥RekeyAC进行验证。
[0104] 在具体实施中,为提高验证效率,可以先验证重加密密钥RekeyAC的总长度是否为预设长度值。如果是,则可以执行后续验证流程;如果否,则将验证结果返回给数据发出者A,并使得数据发出者A重新发送重加密密钥。
[0105] 在具体实施中,重加密密钥RekeyAC可以包括:RekeyAC核心部分、定长随机数nonce与哈希值HashAC,在本发明一实施例中,HashAC=Hash(nonce+PkA+PkC),其中,定长随机数nonce可以利用预设随机数生成器解析得到。获取数据发出者A的公钥PkA、数据接收者C的公钥PkC及重加密密钥的定长随机数nonce,对三者进行拼接,得到拼接值,再对拼接值进行哈希计算,得到拼接值的哈希值HashAC',验证拼接值的哈希值HashAC'是否与哈希值HashAC一致。若二者不一致,则验证结果为RekeyAC错误,可以执行步骤S309,数据交易平台B给数据发出者A发送验证结果,使得数据发出者A重新发送重加密密钥;若二者一致,则验证结果为RekeyAC正确,可以执行步骤S310。
[0106] S310,数据交易平台B向数据发出者A发送预付款。
[0107] 在本发明实施例中,数据交易平台B对重加密密钥RekeyAC验证正确时,把来自数据接收者C的预付款发送给数据发出者A。
[0108] S311,数据交易平台B对密文数据EncryptA进行重加密。
[0109] 在具体实施中,数据交易平台B利用重加密密钥RekeyAC对密文数据EncryptA进行重加密,可以得到重加密数据EncryptAC。
[0110] S312,数据交易平台B向数据接收者C发送重加密数据EncryptAC;
[0111] S313,数据接收者C对重加密数据EncryptAC进行解密,得到解密数据。
[0112] 在具体实施中,数据接收者C可以用自己的私钥SkC对重加密数据EncryptAC进行解密,得到解密数据。
[0113] S314,数据接收者C对HashA与HashC进行对比验证。
[0114] 在具体实施中,为确认所得到的解密数据是否正确,数据接收者C可以对交易数据执行预设的验证流程。在本发明一实施例中,数据接收者C可以对得到的解密数据进行哈希计算,得到哈希值HashC,进而对原始明文哈希值HashA与哈希值HashC进行对比验证,确认二者是否一致,如果是,则解密数据是数据发出者A加密前的交易数据,交易成功,执行步骤S315,向数据发出者A及数据交易平台B确认交易成功。若验证错误,则表示解密数据不是数据发出者A加密前的交易数据,执行步骤S316,将验证结果发送给数据交易平台B。
[0115] 采用上述实施例,在数据交易过程中,数据交易平台对数据发出者产生的重加密密钥进行验证,当验证失败,返回给数据发出者,当验证成功,再对密文数据进行重加密。由于这一过程能够根据对重加密密钥进行验证,防止了数据发出者上传错误的重加密密钥或者防止了上传重加密密钥过程中被恶意篡改,进而避免了数据交易平台因错误的重加密密钥对密文数据进行重加密,减少了交易纠纷。
[0116] 在具体实施中,在数据交易过程中,数据发出者可以用离线的硬件工具生成重加密密钥,可以避免重加密密钥在生成过程中泄露信息,进一步提高数据交易的安全性。
[0117] 在具体实施中,数据接收者可以是多个,即多个数据接收者(数据买方)和数据发出者(数据卖方)可以通过一笔订单完成数据交易。在交易过程中,多个数据接收者可以一起与一个数据发出者生成一个订单,其中每个数据接收者都可以通过数据交易平台向数据发出者发送各自的公钥,且所述数据发出者可以根据多个数据接收者的公钥和自身的私钥,分别生成相应的重加密密钥,并发送至数据交易平台,数据交易平台可以对所述数据发出者生成的多个重加密密钥分别进行验证,得到验证结果,并在验证结果正确时,分别生成相应的重加密数据并发送至相应的数据接收者,各数据接收者可以分别对接收到的数据进行解密及哈希验证,具体步骤均可参见以上本发明实施例,在此不再赘述。
[0118] 采用上述实施例,可以实现一个数据发出者与多个数据接收者对同一数据通过一个订单进行交易,而无须通过多个订单分别完成,可以节约数据处理及传输资源,也可以进一步提高数据交易的效率。
[0119] 为使本领域技术人员更好地理解和实现本发明实施例,以下参照附图4对数据交易系统进行相应介绍。
[0120] 参照附图4,在具体的实施例中,本发明实施例提供了一种数据交易的系统40,包括:第一接收单元41、验证单元42、重加密数据生成单元43、第一发送单元44,其中:
[0121] 第一接收单元41,被配置为分别接收来自数据发出者的密文数据、原始明文哈希值及重加密密钥,所述密文数据为采用数据发出者的公钥对交易数据加密后得到,所述重加密密钥为基于数据发出者的私钥及向所述数据发出者发送的数据接收者的公钥生成;
[0122] 验证单元42,被配置为对所述重加密密钥进行验证,得到验证结果;
[0123] 重加密数据生成单元43,被配置为在所述验证结果为正确时,采用所述重加密密钥对所述密文数据进行重加密,得到重加密数据;
[0124] 第一发送单元44,被配置为将所述重加密数据发送至所述数据接收者,使得所述数据接收者对所述重加密数据进行解密验证,得到解密数据。
[0125] 采用上述数据交易系统,由于该系统对重加密密钥进行了验证,因而可以避免使用错误的重加密密钥进行重加密,进而避免交易欺诈,减少交易纠纷。
[0126] 在具体实施中,所述验证单元42可以包括:
[0127] 获取子单元421,被配置为获取所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数;
[0128] 拼接子单元422,被配置为拼接所述数据发出者的公钥、所述数据接收者的公钥和所述重加密密钥的定长随机数,得到拼接值;
[0129] 哈希计算子单元423,被配置为对所述拼接值进行哈希计算,得到所述拼接值的哈希值;
[0130] 验证子单元424,被配置为对比所述拼接值的哈希值与所述重加密密钥的哈希值是否一致,得到验证结果。
[0131] 在具体实施中,如图4所示,所述验证单元42还可以包括总长度验证子单元425,被配置为验证重加密密钥的总长度是否为预设长度值。通过先对重加密密钥的总长度进行验证是否为预设长度值,进而判定是否进行预设的重加密验证步骤,进一步提高重加密密钥的验证效率。
[0132] 在具体实施中,所述数据交易系统40还可以包括:第二发送单元45,被配置为验证结果为错误时,向所述数据发出者发送验证结果,使得所述数据发出者重新发送重加密密钥。
[0133] 在具体实施中,所述数据交易系统40还可以包括:第二接收单元46,被配置为在向所述数据发出者发送数据接收者的公钥前,接收数据接收者对所述交易的预付款。
[0134] 在具体实施中,所述第一接收单元41的数据接收者可以包括多个,所述重加密密钥为基于所述数据发出者的私钥及各数据接收者的公钥分别生成。通过一个订单实现一个数据发出者对多个数据接收者进行数据交易,进一步提高数据交易的效率。
[0135] 在具体实施中,所述重加密数据生成单元43可以利用离线硬件工具生成重加密密钥,通过离线状态的方式,能够防止重加密密钥在生成过程中出现数据发出者的私钥泄露的情况发生,故可以进一步提高数据交易的安全性。
[0136] 本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一种实施例所述的数据交易方法的步骤,具体可参照上述各实施例,不再赘述。所述计算机存储介质可以包括:ROM、RAM、磁盘或光盘等。
[0137] 本发明实施例还提供数据交易一种平台,包括存储器和处理器,所述存储器上可以存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一种实施例所述的数据交易方法的步骤,具体可参照上述各实施例,不再赘述。
[0138] 虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。