一种数据分发、转发方法及装置与流程

文档序号:14864201发布日期:2018-07-04 09:57阅读:109来源:国知局
一种数据分发、转发方法及装置与流程

本发明涉及信息安全领域,特别涉及一种数据分发、转发方法及装置。



背景技术:

在互联网高度发展的当前,越来越多的数据内容需要通过网络发送。如果将数据内容明文在网络中传输容易被黑客截获,为了提高数据的安全性,在数据发送或转发时可以采用数字信封技术。

数字信封技术使用两层加密体系,数字信封包含被加密的内容和用于对内容加密的内容密钥(cek)的密文。发送方一般使用接收方公钥来对内容密钥进行加密得到内容密钥密文,但也可以使用发送方和接收方预先协商的对称密钥来对内容密钥进行加密。当接收方收到数字信封时,需先用密钥对内容密钥的密文解密得到内容密钥,再用内容密钥对内容密文解密得到内容原文。数字信封技术结合了非对称密钥算法安全性高和对称密钥算法速度快的优点,能够确保数据在传输过程中的机密性并能够防止数据被篡改。

目前,基于数字信封的数据转发技术在提高数据安全性和转发便捷性方面还存在改进空间。



技术实现要素:

有鉴于此,本发明实施例提出了一种基于改进的数字信封技术的安全性和便捷性较高的数据分发、转发方案。

为此,本发明实施例提供了一种数据分发方法,应用于发送方客户端,包括:在对数据加密的过程中利用至少一个密钥进行加密处理,得到数据密文,所述至少一个密钥包括第一密钥;将所述第一密钥拆分为第一子密钥和第二子密钥,并基于第一子密钥生成第一子密钥第一密文;向服务端发送数据分发请求,所述数据分发请求中至少包括第一接收方标识、第一接收方公钥、第一子密钥第一密文和第二子密钥,其中,所述第一子密钥第一密文用于对第一接收方进行验证;从服务端接收返回的第一记录标识,并将数据密文和第一记录标识发送给第一接收方。

作为优选,基于第一子密钥加密生成第一子密钥第一密文包括:用第一接收方公钥对第一子密钥加密得到所述第一子密钥第一密文。

作为优选,基于第一子密钥生成第一子密钥第一密文包括:用第一接收方公钥对第一校验数和第一子密钥加密得到所述第一子密钥第一密文,其中,所述数据分发请求中还包括第一校验数。

作为优选,所述至少一个密钥还包括第二密钥,所述方法还包括:将所述第二密钥拆分为第三子密钥和第四子密钥,并基于第三子密钥生成第三子密钥第一密文,其中,所述数据分发请求中还包括第四子密钥和第三子密钥第一密文,所述第三子密钥第一密文用于对第一接收方进行验证。

作为优选,基于第三子密钥生成第三子密钥第一密文包括:用第一接收方公钥对第三子密钥加密得到所述第三子密钥第一密文。

作为优选,基于第三子密钥生成第三子密钥第一密文包括:用第一接收方公钥对第一校验数和第三子密钥加密得到所述第三子密钥第一密文。

作为优选,在对数据加密的过程中利用至少一个密钥进行加密处理,得到数据密文,包括:使用所述第一密钥对所述数据进行加密得到第一数据密文;从第一密文中抽取第一子数据,用第二密钥加密第一子数据得到第一子数据第一密文;用第二子数据替换第一密文中原第一子数据的位置,生成第二数据密文,其中,所述数据分发请求中还包括第一子数据第一密文,并且发送给第一接收方的数据密文为第二数据密文。

作为优选,在对数据加密的过程中利用至少一个密钥进行加密处理,得到数据密文,包括:将所述数据拆分为第一数据和第二数据;使用所述第一密钥对所述第一数据进行加密得到第一数据密文,使用所述第二密钥对所述第二数据进行加密得到第二数据密文,其中,发送给第一接收方的数据密文包括第一数据密文和第二数据密文。

作为优选,在对数据加密的过程中利用至少一个密钥进行加密处理,得到数据密文,包括:使用所述第一密钥对所述第一数据进行加密得到第一数据密文,并使用所述第二密钥对所述第一数据密文进行加密得到第二数据密文,其中,发送给第一接收方的数据密文为第二数据密文。

作为优选,所述方法还包括:向服务端发送包括第一记录标识和第一接收方标识的数据分发撤销请求,以便服务端将第一接收方标识以及与第一接收方标识关联存储的信息删除。

本发明实施例还提供了一种数据分发装置,包括处理器,所述处理器运行预定的计算机指令以执行上述任一实施例的应用于发送方客户端的数据分发方法。

本发明实施例还提供了一种数据转发方法,应用于服务端,包括:从发送方接收到至少包括第一接收方标识、第一接收方公钥、第一子密钥第一密文和第二子密钥的数据分发请求时,向发送方返回第一记录标识;对第二子密钥加密得到第二子密钥第一密文,将第一记录标识与第二子密钥第一密文关联存储,并将第一接收方标识与至少第一记录标识、第一子密钥第一密文和第一接收方公钥关联存储;从第一接收方接收到包括第一接收方标识和第一记录标识的数据接收请求时,使用第一子密钥第一密文对第一接收方进行第一验证,当第一接收方至少通过第一验证时,将第一子密钥和第二子密钥组合为第一密钥并用第一接收方公钥加密后发送给第一接收方。

作为优选,所述第一子密钥第一密文通过用第一接收方公钥对第一子密钥加密得到;使用第一子密钥第一密文对第一接收方进行第一验证包括:将第一子密钥第一密文发送给第一接收方,并验证从第一接收方返回的第一子密钥是否正确。

作为优选,所述数据分发请求中还包括第一校验数,所述第一接收方标识还与第一校验数关联存储,所述第一子密钥第一密文通过用第一接收方公钥对第一校验数和第一子密钥进行加密得到;使用第一子密钥第一密文对第一接收方进行第一验证包括:将第一子密钥第一密文发送给第一接收方,并验证从第一接收方返回的包括第一校验数和第一子密钥的第一验证数据是否正确。

作为优选,所述数据分发请求中还包括第三子密钥第一密文和第四子密钥,所述方法还包括:对第四子密钥加密得到第四子密钥第一密文,将第一记录标识还与第四子密钥第一密文关联存储,并将第一接收方标识还与第三子密钥第一密文关联存储;从第一接收方接收到包括第一接收方标识和第一记录标识的数据接收请求时,还使用第三子密钥第一密文对第一接收方进行第二验证,当第一接收方通过第二验证时,将对应于第二验证的数据发送给第一接收方。

作为优选,所述第三子密钥第一密文通过用第一接收方公钥对第三子密钥加密得到;使用第三子密钥第一密文对第一接收方进行第二验证包括:将第三子密钥第一密文发送给第一接收方,并验证从第一接收方返回的第三子密钥是否正确。

作为优选,所述数据分发请求中还包括第一校验数,所述第一接收方标识还与第一校验数关联存储,所述第三子密钥第一密文通过用第一接收方公钥对第一校验数和第三子密钥进行加密得到;使用第三子密钥第一密文对第一接收方进行第二验证包括:将第三子密钥第一密文发送给第一接收方,并验证从第一接收方返回的包括第一校验数和第三子密钥的第二验证数据是否正确。

作为优选,所述数据分发请求中还包括第一子数据第一密文,所述第一子数据第一密文通过用第二密钥对从经第一密钥对数据加密得到的第一数据密文中抽取的第一子数据加密得到,所述方法还包括:将所述第一记录标识还与第一子数据第一密文关联存储;当第一接收方通过第二验证时,将第三子密钥和第四子密钥组合为第二密钥,使用第二密钥解密第一子数据第一密文得到第一子数据,并使用第一接收方公钥加密第一子数据得到第一子数据第二密文后发送给第一接收方。

作为优选,所述方法还包括:在第一接收方通过第二验证时,将第三子密钥和第四子密钥组合为第二密钥并用第一接收方公钥加密后发送给第一接收方。

作为优选,所述方法还包括:接收到包括第一记录标识和第一接收方标识的数据分发撤销请求时,将第一接收方标识以及与第一接收方标识关联存储的信息删除。

本发明实施例还提供了一种数据转发装置,包括处理器,所述处理器运行预定的计算机指令以执行上述任一实施例的应用于服务端的数据转发方法。

本发明实施例还提供了一种数据转发方法,应用于接收方客户端,包括:从数据发送方接收到数据密文和第一记录标识时,向服务端发送包括第一接收方标识和第一记录标识的数据接收请求;从服务端接收到用于对第一接收方进行第一验证的第一子密钥第一密文时,使用第一接收方私钥对第一子密钥第一密文进行解密处理,并将第一解密结果发送给服务端,如第一验证通过,从服务端获得由服务端通过对第一子密钥和第二子密钥进行组合生成的第一密钥,并在对数据密文进行解密的过程中使用第一密钥。

作为优选,所述第一子密钥第一密文通过用第一接收方公钥对第一子密钥加密生成,所述第一解密结果为第一子密钥。

作为优选,所述第一子密钥第一密文通过用第一接收方公钥对第一校验数和第一子密钥进行加密生成。

作为优选,所述方法还包括:从服务端接收到用于对第一接收方进行第二验证的第三子密钥第一密文时,使用第一接收方私钥对第三子密钥第一密文进行解密处理,并将第二解密结果发送给服务端;如第二验证通过,从服务端获得对应于第二验证的数据以在对数据密文进行解密的过程中使用。

作为优选,所述第三子密钥第一密文通过用第一接收方公钥对第三子密钥加密生成。

作为优选,所述第三子密钥第一密文通过用第一接收方公钥对第一校验数和第三子密钥进行加密生成。

作为优选,所述方法还包括:如第二验证通过,从服务端获得第一子数据第二密文,所述第一子数据第二密文由服务端使用第一接收方公钥加密第一子数据生成,所述第一子数据由服务端使用将第三子密钥和第四子密钥组合得到的第二密钥解密第一子数据第一密文得到,所述第一子数据第一密文由数据发送方通过用第二密钥对从经第一密钥对数据加密得到的第一数据密文中抽取的第一子数据加密得到,从数据发送方接收的数据密文通过用第二子数据替换第一数据密文中原第一子数据的位置而生成。

作为优选,所述方法还包括:如第二验证通过,从服务端获得由服务端通过对第三子密钥和第四子密钥进行组合生成的第二密钥,并在对从数据发送方接收的数据密文进行解密的过程中使用第二密钥。

本发明实施例还提供了一种数据转发装置,包括处理器,所述处理器运行预定的计算机指令以执行上述任一实施例的应用于接收方客户端的数据转发方法。

通过本发明实施例的数据分发/转发方案,能够在提高用户在转发数据时在操作上的便捷性的同时,有效地提高数据在传输过程中的安全性。

附图说明

图1为本发明的数据分发方法的一个实施例的示意性流程图;

图2为本发明的数据分发方法的另一实施例的示意性流程图;

图3为本发明的数据转发方法的一个实施例的示意性流程图;

图4为本发明的数据转发方法的另一个实施例的示意性流程图;

图5为本发明的数据转发方法的一个实施例的示意性流程图;

图6为本发明的数据转发方法的一个实施例的示意性流程图;

图7为本发明的数据转发方法的另一实施例的示意性流程图;

图8为本发明的数据分发方法的一个实施例的示意性流程图;

图9为本发明的数据转发方法的一个实施例的示意性流程图;

图10为本发明的数据转发方法的一个实施例的示意性流程图;

图11为本发明的数据分发方法的一个实施例的示意性流程图;

图12为本发明的数据转发方法的一个实施例的示意性流程图;

图13为本发明的数据转发方法的一个实施例的示意性流程图。

具体实施方式

下面参照附图对本发明各个实施例进行详细说明。

图1为本发明的数据分发方法的一个实施例的示意性流程图,本发明实施例的数据分发方法应用于数据发送方客户端。

如图1所示,本发明实施例的数据分发方法包括:

s110、在对数据加密的过程中利用至少一个密钥进行加密处理,得到数据密文,所述至少一个密钥包括第一密钥;

在本发明实施例中,数据发送方在需要向数据接收方发送数据时,先将待发送数据进行加密处理,在加密处理过程中可利用至少一个密钥对数据进行处理,该至少一个密钥中包括第一密钥,第一密钥可以是发送方为第一接收方生成的随机数,也可以是发送方按自定义方式为第一接收方生成的任何字符串。此外,第一密钥可以是整体生成,也可以是通过将多个字符串进行组合生成。

本发明实施例对数据的加密方式无特定要求,作为示例,加密方式例如可以是:用第一密钥对待发送数据加密生成数据密文;先用其他密钥对待发送数据加密后再用第一密钥加密生成数据密文;先用第一密钥对待发送数据加密后再用其他密钥加密生成数据密文;用第一密钥和其他密钥对待发送数据的不同部分进行加密等等。这里的其他密钥例如可以是第一接收方的公钥,或者发送方与第一接收方预先协商的对称密钥。

s111、将所述第一密钥拆分为第一子密钥和第二子密钥,并基于第一子密钥生成第一子密钥第一密文;

本发明实施例中对第一密钥进行拆分的方式无特定要求,可从第一密钥中的任一位置将第一密钥拆分为两个部分。第一子密钥第一密文可使用发送方与第一接收方协商的任何密钥对第一子密钥或对包含第一子密钥在内的字符串进行加密生成,例如可使用第一接收方公钥或预先协商的对称密钥来进行加密。

s112、向服务端发送数据分发请求,所述数据分发请求中至少包括第一接收方标识、第一接收方公钥、第一子密钥第一密文和第二子密钥;

本发明实施例中,发送方通过向服务端发送数据分发请求的方式,向服务端分发第一密钥,以便服务端将第一密钥转发给通过验证的第一接收方。发送方发送给服务端的第一密钥已经被发送方处理为两部分,即第一子密钥第一密文和第二子密钥。数据分发请求中除第一密钥的两个部分外还包括第一接收方标识和第一接收方公钥,其中,第一接收方标识用于使服务端识别第一接收方,第一接收方公钥用于服务端将需要发送给第一接收方的数据进行加密后传输。

第一子密钥第一密文用于对第一接收方进行验证。当第一子密钥第一密文是用第一接收方公钥加密生成时,发送方还用发送方与服务端协商的密钥对第一子密钥加密生成第一子密钥第二密文并随数据分发请求发送给服务端,服务端使用第一子密钥第一密文对第一接收方进行身份验证时,可使用协商密钥对第一子密钥第二密文解密得到第一子密钥来检验第一接收方返回的验证数据是否正确。当第一子密钥第一密文是使用发送方与第一接收方协商的对称密钥加密生成时,发送方可以使用将上述的与服务端协商的密钥加密第一子密钥生成第一子密钥第二密文发送给服务端,也可以使用上述的与服务端协商的密钥对生成第一子密钥第一密文时使用的对称密钥加密后发送给服务端,以便服务端能够获得第一子密钥或包括第一子密钥的字符串来检验第一接收方返回的检验数据。发送方与服务端协商的密钥例如可以是服务端的公钥或对称密钥。

发送方发送给服务端的第二子密钥可以直接随数据分发请求发送,也可以在发送前用发送方与服务端协商的密钥加密后随数据分发请求发送。服务端在接收到第二子密钥或第二子密钥的密文并解密获得第二子密钥后,可以对第二子密钥加密后存储,或者将第二子密钥拆分为多个部分并分别进行存储,或者也可以将第二子密钥拆分为多个部分并分别进行加密后进行存储。

另外,发送方发送给服务端的数据分发请求中除了上述信息和数据外还可以包括其他信息或数据。作为示例,发送方还可以通过数据分发请求向服务端发送数据密文的哈希值、发送方标识等。

s113、从服务端接收返回的第一记录标识,并将数据密文和第一记录标识发送给第一接收方。

服务端在接收到数据分发请求时,从数据分发请求中提取第一接收方标识、第一接收方公钥、第一子密钥第一密文和第二子密钥等信息和数据后对这些信息和数据进行存储,并为存储的这些信息和数据对应地创建第一记录标识,然后将第一记录标识返回给发送方客户端。

发送方客户端在从服务端接收到第一记录标识后,可在任一时点将相应的数据密文和第一记录标识直接发送给第一接收方或者通过另一服务端间接发送给第一接收方。

第一接收方在接收到第一记录标识和数据密文后,可凭借第一记录标识和第一接收方标识向服务端请求第一密钥,服务端在接收到请求时,可使用第一子密钥第一密文验证第一接收方的身份,并在第一接收方通过验证的情况下,将第一子密钥和第二子密钥组合成第一密钥,将第一密钥用第一接收方公钥加密后发送给第一接收方。

通过本发明实施例,数据发送方将在对数据密文解密时使用的第一密钥处理为两部分并与接收方公钥和接收方标识一同发送给服务端,接收方从服务端接收到的验证数据仅为第一密钥的一部分,只有在通过验证后才能获得完整的第一密钥。由此,通过将第一密钥的一部分用作验证数据,并且验证数据由发送方生成,服务端可直接将验证数据发送给接收方进行验证,减轻了服务端在验证上的管理和计算负荷,同时,第一密钥分为两个部分进行不同的加密或存储等处理,即使黑客截获通信数据或攻击服务端,也难以确定第一密钥的具体构成方式以及经过了怎样的处理,确保了第一密钥在传输中以及在服务端存储时的安全性。

在本发明一个实施例中,s111中可以用第一接收方公钥对第一子密钥加密得到第一子密钥第一密文,第一接收方从服务端接收到用于验证的第一子密钥第一密文时,可使用第一接收方私钥对第一子密钥第一密文解密得到第一子密钥,再将第一子密钥返回给服务端进行验证。

在本发明另一个实施例中,s111中可以用第一接收方公钥对第一校验数和第一子密钥加密得到第一子密钥第一密文。第一校验数例如可以是发送方生成的定长随机数或者发送方自定义生成的字符串,发送方可将第一校验数和第一子密钥组合成一个字符串,用第一接收方公钥对这个字符串加密生成第一子密钥第一密文,并且将第一校验数也携带在发送给服务端的数据分发请求中。第一接收方从服务端接收到第一子密钥第一密文时,用第一接收方私钥对第一子密钥第一密文解密得到由第一校验数和第一子密钥拼接成的字符串并返回给服务端,服务端将从数据分发请求中获得的第一校验数和第一子密钥组合成字符串来对第一接收方返回的字符串进行验证。

图2为本发明的数据分发方法的另一实施例的示意性流程图。

如图2所示,本发明实施例的数据分发方法包括:

s120、在对数据加密的过程中利用至少一个密钥进行加密处理得到数据密文,至少一个密钥包括第一密钥和第二密钥;

s121、将第一密钥拆分为第一子密钥和第二子密钥,并基于第一子密钥生成第一子密钥第一密文;

s122、将第二密钥拆分为第三子密钥和第四子密钥,并基于第三子密钥生成第三子密钥第一密文;

s123、向服务端发送数据分发请求,数据分发请求中至少包括第一接收方标识、第一接收方公钥、第一子密钥第一密文和第二子密钥、第三子密钥第一密文和第四子密钥;

s124、从服务端接收返回的第一记录标识,并将数据密文和第一记录标识发送给第一接收方。

本发明实施例中,在对数据进行加密时使用了第一密钥和第二密钥。第一密钥和第二密钥均为发送方生成,并且不为第一接收方所知。

与第一密钥的处理方式类似,发送方将第二密钥也拆分为两个部分,分别是第三子密钥和第四子密钥,并基于第三子密钥生成第三子密钥第一密文。随后,发送方将第三子密钥第一密文和第四子密钥也携带在向服务端发送的数据分发请求中一起发送。

第三子密钥第一密文也用于对第一接收方进行身份验证。当第三子密钥第一密文是用第一接收方公钥加密生成时,发送方还需用发送方与服务端协商的密钥对第三子密钥加密生成第三子密钥第二密文并随数据分发请求发送给服务端;当第三子密钥第一密文是使用发送方与第一接收方协商的对称密钥加密生成时,发送方可以使用将上述的与服务端协商的密钥加密第三子密钥生成第三子密钥第二密文发送给服务端,也可以使用上述的与服务端协商的密钥对生成第三子密钥第一密文时使用的对称密钥加密后发送给服务端,以便服务端能够获得第三子密钥来检验第一接收方返回的检验数据。发送方与服务端协商的密钥例如可以是服务端的公钥或对称密钥。

发送方发送给服务端的第四子密钥可以直接随数据分发请求发送,也可以在发送前用发送方与服务端协商的密钥加密后随数据分发请求发送。服务端在接收到第四子密钥或第四子密钥的密文并解密获得第四子密钥后,可以对第四子密钥加密后存储,或者将第四子密钥拆分为多个部分并分别进行存储,或者也可以将第四子密钥拆分为多个部分并分别进行加密后进行存储。

第一接收方从发送方接收到数据密文和第一记录标识后,向服务端请求使用解密所需密钥,服务端分别用第一子密钥第一密文和第三子密钥第一密文对第一接收方进行验证,在验证通过后,允许第一接收方使用解密所需密钥。服务端向第一接收方发送解密所需数据的方式取决于第一密钥与第二密钥在对数据加密时的使用方式,这将在后文结合实施例进行说明。

本发明实施例中,第一接收方在解密数据密文时除了需要第一密钥外,还需要第二密钥或者与第二密钥相关的数据,服务端分别针对第一密钥和第二密钥独立对第一接收方进行身份验证,进一步提高了数据密文和密钥的安全性。

本发明实施例中第二密钥的生成方式可以与第一密钥的生成方式相同或类似。例如,在本发明一个实施例中,s122中可以用第一接收方公钥对第三子密钥加密得到第三子密钥第一密文。在本发明另一个实施例中,s122中可以用第一接收方公钥对第一校验数和第三子密钥加密得到第三子密钥第一密文,生成第一子密钥第一密文时使用的第一校验数与生成第三子密钥第一密文时使用的第一校验数可以相同或不同,在所使用校验数不同的情况下,发送方需在向服务端发送的数据分发请求中携带每一校验数并指明各校验数与验证用子密钥密文之间的对应关系。

下面将结合实施例对发送方使用第一密钥与第二密钥对数据加密时的加密方式进行示意性说明。

在本发明一个实施例中,发送方在对数据加密时,先使用第一密钥对待发送的数据明文进行加密处理得到第一数据密文,然后从第一数据密文中的预定部分抽取第一子数据,用第二子数据替换第一数据密文中原第一子数据的位置,生成第二数据密文,并用第二密钥加密第一子数据得到第一子数据第一密文。其中,从第一密文中抽取第一子数据的方式不限,例如可以从第一密文的头部、中部和末尾分别抽取少量数据作为第一子数据,或者从第一密文的前半部和后半部中分别抽取少量数据作为第一子数据。用来替换第一密文中原第一子数据位置的第二子数据例如可以是空数据,或者是发送方任意生成的字符串。发送方只需与第一接收方约定从第一密文抽取第一子数据的位置,无需与第一接收方约定第二子数据的生成方式。同时,发送方还需向服务端发送第一子数据第一密文,并且将第二数据密文和第一记录标识发送给第一接收方。第一接收方收到第二数据密文和第一记录标识后,向服务端发送第一记录标识和第一接收方标识以请求第一密钥和第一子数据第一密文,服务端用第一子密钥第一密文和第三子密钥第一密文分别对第一接收方进行验证通过后,将第三子密钥和第四子密钥组合成第二密钥解密第一子数据第一密文得到第一子数据,并将第一密钥和第一子数据用第一接收方公钥加密后发送给第一接收方。第一接收方接收到第一密钥和第一子数据后,用第一子数据替换第二数据密文中的预定部分得到第一数据密文,再用第一密钥对第一数据密文解密得到数据明文。在本发明实施例中,通过将对第一数据密文进行上述处理得到的第二数据密文发送给第一接收方,使得第一接收方得到的密文数据中包含噪音,能够有效地防止暴力破解,提高数据密文的安全性。

在本发明另一个实施例中,发送方在对数据进行加密时,先将待发送的明文数据拆分为第一数据和第二数据,使用第一密钥对第一数据进行加密得到第一数据密文,使用第二密钥对第二数据进行加密得到第二数据密文,并将第一数据密文和第二数据密文作为上述数据密文与第一记录标识一同发送给第一接收方。第一接收方收到第一数据密文、第二数据密文和第一记录标识后,向服务端发送第一记录标识以请求第一密钥和第二密钥,服务端用第一子密钥第一密文和第三子密钥第一密文分别对第一接收方进行验证通过后,将第一密钥和第二密钥用第一接收方公钥加密后发送给第一接收方。第一接收方接收到第一密钥和第二密钥后,分别用第一密钥和第二密钥对第一数据密文和第二数据密文解密得到第一数据和第二数据,再将第一数据和第二数据组合得到数据明文。在本发明实施例中,通过将数据拆分为两部分并分别加密后发送给接收方,接收方需得到两部分对应的密钥分别对密文解密后才能得到目标数据明文,能够提高数据密文的安全性。

在本发明再一个实施例中,发送方在对数据进行加密时,先使用第一密钥对待发送数据明文进行加密得到第一数据密文,再使用第二密钥对第一数据密文进行加密得到第二数据密文,并将第二数据密文和第一记录标识发送给第一接收方。第一接收方收到第二数据密文和第一记录标识后,向服务端发送第一记录标识以请求第一密钥和第二密钥,服务端用第一子密钥第一密文和第三子密钥第一密文分别对第一接收方进行验证通过后,将第一密钥和第二密钥用第一接收方公钥加密后发送给第一接收方。第一接收方接收到第一密钥和第二密钥后,先用第二密钥对第二数据密文解密得到第一数据密文,再用第一密钥对第一数据密文解密得到数据明文。在本发明实施例中,通过将数据进行多层加密后发送给接收方,接收方需得到两层加密对应密钥先后对数据密文解密后才能得到目标数据明文,能够提高数据密文的安全性。

图3为本发明的数据转发方法的一个实施例的示意性流程图,本发明实施例的数据转发方法应用于服务端。

如图3所示,本发明实施例的数据转发方法包括:

s130、从发送方接收到至少包括第一接收方标识、第一接收方公钥、第一子密钥第一密文和第二子密钥的数据分发请求时,向发送方返回第一记录标识;

本发明实施例中,发送方通过向服务端发送数据分发请求的方式,向服务端分发第一密钥,以便服务端将第一密钥转发给通过验证的第一接收方,第一密钥在对发送方要发给第一接收方的数据进行加密的过程中使用。发送方发送给服务端的第一密钥已经被发送方处理为两部分,即第一子密钥第一密文和第二子密钥(参见s111)。服务端从发送方接收到的数据分发请求中除第一密钥的两个部分外还包括第一接收方标识和第一接收方公钥,其中,第一接收方标识用于使服务端识别第一接收方,第一接收方公钥用于服务端将需要发送给第一接收方的数据进行加密后传输。服务端接收到数据分发请求后,为该数据分发请求分配第一记录标识并返回给发送方。

s131、对第二子密钥加密得到第二子密钥第一密文,将第一记录标识与第二子密钥第一密文关联存储,并将第一接收方标识与至少第一记录标识、第一子密钥第一密文和第一接收方公钥关联存储;

随后,服务端对从数据分发请求中提取的信息和数据进行相应的处理和存储。其中,服务端在从数据分发请求中提取到第二子密钥或提取到第二子密钥密文并解密获得第二子密钥后,可以将第二子密钥加密后存储为第二子密钥第一密文,或者可以将第二子密钥拆分为多个部分并分别进行加密后存储为第二子密钥第一密文。随后,服务端将第一记录标识和与数据密文的解密相关的第二子密钥第一密文关联存储为单独的数据分发记录,并为第一接收方标识单独创建一个转发记录,将第一记录标识和与第一接收方相关的第一子密钥第一密文、第一接收方公钥等数据存储在这个转发记录中。

s132、从第一接收方接收到包括第一接收方标识和第一记录标识的数据接收请求时,使用第一子密钥第一密文对第一接收方进行第一验证;

第一接收方在从数据发送方接收到第一记录标识和数据密文后,可凭借第一记录标识和第一接收方标识向服务端请求第一密钥,服务端在接收到数据接收请求时,可将第一子密钥第一密文发送给第一接收方来验证第一接收方的身份。当第一子密钥第一密文是用第一接收方公钥加密生成时,发送方还会用发送方与服务端协商的密钥对第一子密钥加密生成第一子密钥第二密文发送给服务端,服务端使用第一子密钥第一密文对第一接收方进行身份验证时,可使用协商密钥对第一子密钥第二密文解密得到第一子密钥来检验第一接收方返回的验证数据是否正确。当第一子密钥第一密文是使用发送方与第一接收方协商的对称密钥加密生成时,发送方还会使用将上述的与服务端协商的密钥加密第一子密钥生成第一子密钥第二密文发送给服务端,或者会使用上述的与服务端协商的密钥对生成第一子密钥第一密文时使用的对称密钥加密后发送给服务端,从而服务端能够获得第一子密钥或包含第一子密钥的字符串来检验第一接收方返回的检验数据。

s133、当第一接收方至少通过第一验证时,将第一子密钥和第二子密钥组合为第一密钥并用第一接收方公钥加密后发送给第一接收方。

在第一接收方通过验证的情况下,服务端将第一子密钥和第二子密钥组合成第一密钥,将第一密钥用第一接收方公钥加密后发送给第一接收方,第一接收方可使用从服务端获取的第一密钥来对从发送方获取的数据密文进行解密得到数据明文。

通过本发明实施例,将第一密钥的一部分用作验证数据,并且验证数据由发送方生成,服务端可直接将验证数据发送给接收方进行验证,减轻了服务端在验证上的管理和计算负荷,同时确保了第一密钥在传输中以及在服务端存储时的安全性。

在本发明一个实施例中,第一子密钥第一密文通过用第一接收方公钥对第一子密钥加密得到,s132中服务端将第一子密钥第一密文发送给第一接收方后,可通过将第一子密钥与从第一接收方返回的验证数据进行比较来确定第一接收方返回的是否为正确的第一子密钥。

在本发明另一个实施例中,数据分发请求中还包括第一校验数,并且第一子密钥第一密文通过用第一接收方公钥对第一校验数和第一子密钥进行加密得到,s132中服务端将第一子密钥第一密文发送给第一接收方后,可通过将第一子密钥和第一校验数与从第一接收方返回的验证数据进行比较来确定第一接收方是否返回了正确的包括第一校验数和第一子密钥的数据。

图4为本发明的数据转发方法的另一个实施例的示意性流程图。

如图4所示,本发明实施例的数据转发方法包括:

s140、从发送方接收到至少包括第一接收方标识、第一接收方公钥、第一子密钥第一密文和第二子密钥以及第三子密钥第一密文和第四子密钥的数据分发请求时,向发送方返回第一记录标识;

s141、对第二子密钥加密得到第二子密钥第一密文,对第四子密钥加密得到第四子密钥第一密文;

s142、将第一记录标识与第二子密钥第一密文和第四子密钥第一密文关联存储,并将第一接收方标识与至少第一记录标识、第一子密钥第一密文、第三子密钥第一密文和第一接收方公钥关联存储;

s143、从第一接收方接收到包括第一接收方标识和第一记录标识的数据接收请求时,使用第一子密钥第一密文对第一接收方进行第一验证,使用第三子密钥第一密文对第一接收方进行第二验证;

s144、当第一接收方至少通过第一验证时,将第一子密钥和第二子密钥组合为第一密钥并用第一接收方公钥加密后发送给第一接收方,当第一接收方通过第二验证时,将对应于第二验证的数据发送给第一接收方。

在本发明实施例中,发送方在对数据进行加密时使用了第一密钥和第二密钥。第一密钥和第二密钥均为发送方生成,并且不为第一接收方所知。与第一密钥的处理方式类似,发送方将第二密钥也拆分为两个部分,分别是第三子密钥和第四子密钥,并基于第三子密钥生成第三子密钥第一密文。服务端从发送方接收到的数据分发请求中包括该第三子密钥第一密文和第四子密钥。

服务端使用第一子密钥第一密文和第三子密钥第一密文两者对第一接收方进行身份验证。当第三子密钥第一密文是用第一接收方公钥加密生成时,发送方还会用发送方与服务端协商的密钥对第三子密钥加密生成第三子密钥第二密文并随数据分发请求发送给服务端;当第三子密钥第一密文是使用发送方与第一接收方协商的对称密钥加密生成时,发送方还会用上述的与服务端协商的密钥加密第三子密钥生成第三子密钥第二密文发送给服务端,或者会用上述的与服务端协商的密钥对生成第三子密钥第一密文时使用的对称密钥加密后发送给服务端。服务端由此可以获得第三子密钥来检验第一接收方对第三子密钥第一密文解密后返回的检验数据。

服务端在从数据分发请求中提取出第四子密钥或第四子密钥的密文并解密获得第四子密钥后,可以对第四子密钥加密后存储为第四子密钥第一密文,或者将第四子密钥拆分为多个部分并分别进行加密后存储为第四子密钥第一密文,并将第二子密钥第一密文、第四子密钥第一密文与第一记录标识关联存储为单独的数据分发记录。

第一接收方从发送方接收到数据密文和第一记录标识后,向服务端请求使用解密所需密钥时,服务端分别用第一子密钥第一密文和第三子密钥第一密文对第一接收方进行验证,在验证通过后,将第一子密钥和第二子密钥组合为第一密钥并用第一接收方公钥加密后发送给第一接收方,并将对应于第二验证的数据发送给第一接收方,使得第一接收方能够对从发送方获得的数据密文进行解密得到数据明文。服务端向第一接收方发送的对应于第二验证的数据的方式取决于第一密钥与第二密钥在对数据加密时的使用方式,这将在后文说明。

本发明实施例中,第一接收方在解密数据密文时除了需要第一密钥外,还需要第二密钥或者与第二密钥相关的数据,服务端分别针对第一密钥和第二密钥独立对第一接收方进行身份验证,进一步提高了数据密文和密钥的安全性。

本发明实施例中,第三子密钥第一密文可以通过用第一接收方公钥对第三子密钥加密得到,s143中服务端将第三子密钥第一密文发送给第一接收方后,可通过将第三子密钥与从第一接收方返回的验证数据进行比较来确定第一接收方返回的是否为正确的第三子密钥。

在本发明另一个实施例中,数据分发请求中还包括第一校验数,并且第三子密钥第一密文通过用第一接收方公钥对第一校验数和第三子密钥进行加密得到,s142中服务端将第三子密钥第一密文发送给第一接收方后,可通过将第三子密钥和第一校验数与从第一接收方返回的验证数据进行比较来确定第一接收方是否返回了正确的包括第一校验数和第三子密钥的数据。

图5为本发明的数据转发方法的一个实施例的示意性流程图。

如图5所示,本发明实施例的数据转发方法包括:

s150、从发送方接收到至少包括第一接收方标识、第一接收方公钥、第一子密钥第一密文和第二子密钥、第三子密钥第一密文和第四子密钥以及第一子数据第一密文的数据分发请求时,向发送方返回第一记录标识;

s151、对第二子密钥加密得到第二子密钥第一密文,对第四子密钥加密得到第四子密钥第一密文;

s152、将第一记录标识与第二子密钥第一密文和第四子密钥第一密文以及第一子数据第一密文关联存储,并将第一接收方标识与至少第一记录标识、第一子密钥第一密文、第三子密钥第一密文和第一接收方公钥关联存储;

s153、从第一接收方接收到包括第一接收方标识和第一记录标识的数据接收请求时,使用第一子密钥第一密文对第一接收方进行第一验证,使用第三子密钥第一密文对第一接收方进行第二验证;

s154、当第一接收方至少通过第一验证时,将第一子密钥和第二子密钥组合为第一密钥并用第一接收方公钥加密后发送给第一接收方;

s155、当第一接收方通过第二验证时,将第三子密钥和第四子密钥组合为第二密钥,使用第二密钥解密第一子数据第一密文得到第一子数据,并使用第一接收方公钥加密第一子数据得到第一子数据第二密文后发送给第一接收方。

在本发明实施例中,发送方在对数据加密时,先使用第一密钥对待发送的数据明文进行加密处理得到第一数据密文,然后从第一数据密文中的预定部分抽取第一子数据,用第二子数据替换第一数据密文中原第一子数据的位置,生成第二数据密文,并用第二密钥加密第一子数据得到第一子数据第一密文。服务端还可以从发送方的数据分发请求中提取到第一子数据第一密文,并将第一子数据第一密文、第二子密钥第一密文、第四子密钥第一密文与第一记录标识关联存储为单独的数据分发记录。

第一接收方从发送方接收到的是第二数据密文和第一记录标识,并向服务端发送第一记录标识以请求第一密钥和第一子数据第一密文,服务端用第一子密钥第一密文和第三子密钥第一密文分别对第一接收方进行验证通过后,将第三子密钥和第四子密钥组合成第二密钥解密第一子数据第一密文得到第一子数据,并将第一密钥和第一子数据用第一接收方公钥加密后发送给第一接收方。第一接收方接收到第一密钥和第一子数据后,用第一子数据替换第二数据密文中的预定部分得到第一数据密文,再用第一密钥对第一数据密文解密得到数据明文。

在本发明实施例中,通过将对第一数据密文进行处理得到的第二数据密文发送给第一接收方,并将解密第二数据密文所必须的第一子数据的密文存储在服务端,使得第一接收方得到的密文数据中包含噪音,必须从服务端获得第一子数据才能解密数据密文,能够有效地防止暴力破解,提高数据密文的安全性。

在本发明一些实施例中,第一接收方在对从发送方获得的数据密文解密时,需要同时持有第一密钥和第二密钥才能完成解密,这时,第一接收方在通过服务端的第二验证时,服务端除了将第一密钥用第一接收方公钥加密发送给第一接收方之外,还可将第三子密钥和第四子密钥组合为第二密钥并用第一接收方公钥加密后发送给第一接收方。本发明实施例通过使接收方需得到两个密钥对密文解密后才能得到数据明文,能够提高数据密文的安全性。

图6为本发明的数据转发方法的一个实施例的示意性流程图,本发明实施例应用于接收方客户端。

如图6所示,本发明实施例的数据转发方法包括:

s160、从数据发送方接收到数据密文和第一记录标识时,向服务端发送包括第一接收方标识和第一记录标识的数据接收请求;

第一接收方从数据发送方接收到的数据密文由发送方在对数据明文加密的过程中使用至少一个密钥加密生成,并且数据发送方将对数据密文解密所需的数据和第一接收方标识已经发送至服务端,服务端已经将这些数据和信息进行存储并相应分配了第一记录标识。第一接收方可凭第一接收方标识和第一记录标识向服务端请求对数据密文解密所需的数据。

s161、从服务端接收到用于对第一接收方进行第一验证的第一子密钥第一密文时,使用第一接收方私钥对第一子密钥第一密文进行解密处理,并将第一解密结果发送给服务端;

服务端在从第一接收方接收到数据接收请求时,可将第一子密钥第一密文发送给第一接收方来验证第一接收方的身份。当第一子密钥第一密文是用第一接收方公钥加密生成时,第一接收方可使用第一接收方私钥对第一子密钥第一密文解密得到第一解密结果返回给服务端。当第一子密钥第一密文是使用发送方与第一接收方协商的对称密钥加密生成时,第一接收方可使用协商的对称密钥对第一子密钥第一密文解密得到第一解密结果返回给服务端。服务端可使用从发送方的数据分发请求获取的第一子密钥或包含第一子密钥的字符串来检验第一接收方返回的第一解密结果是否正确。

s162、如第一验证通过,从服务端获得由服务端通过对第一子密钥和第二子密钥进行组合生成的第一密钥,并在对数据密文进行解密的过程中使用第一密钥。

在服务端确认第一接收方通过验证的情况下,将从发送方的数据分发请求获取的第一子密钥和第二子密钥组合成第一密钥,将第一密钥用第一接收方公钥加密后发送给第一接收方。第一接收方可使用从服务端获取的第一密钥来对从发送方获取的数据密文进行解密得到数据明文。

通过本发明实施例,将第一密钥的一部分用作验证数据,并且验证数据由发送方生成,服务端可直接将验证数据发送给接收方进行验证,减轻了服务端在验证上的管理和计算负荷,同时确保了第一密钥在传输中以及在服务端存储时的安全性。

在本发明一个实施例中,第一子密钥第一密文通过用第一接收方公钥对第一子密钥加密生成,第一接收方对第一子密钥第一密文解密得到的第一解密结果为第一子密钥。在本发明另一个实施例中,第一子密钥第一密文通过用第一接收方公钥对第一校验数和第一子密钥进行加密生成,第一接收方对第一子密钥第一密文解密得到的第一解密结果是包含第一校验数和第一子密钥的字符串。

图7为本发明的数据转发方法的另一实施例的示意性流程图。

如图7所示,本发明实施例的数据转发方法包括:

s170、从数据发送方接收到数据密文和第一记录标识时,向服务端发送包括第一接收方标识和第一记录标识的数据接收请求;

s171、从服务端接收到用于对第一接收方进行第一验证的第一子密钥第一密文时,使用第一接收方私钥对第一子密钥第一密文进行解密处理,并将第一解密结果发送给服务端;

s172、如第一验证通过,从服务端获得由服务端通过对第一子密钥和第二子密钥进行组合生成的第一密钥,并在对数据密文进行解密的过程中使用第一密钥;

s173、从服务端接收到用于对第一接收方进行第二验证的第三子密钥第一密文时,使用第一接收方私钥对第三子密钥第一密文进行解密处理,并将第二解密结果发送给服务端;

s174、如第二验证通过,从服务端获得对应于第二验证的数据以在对数据密文进行解密的过程中使用。

需要说明的是,s171和s173不限于先后执行,而是也可并行执行。

在本发明实施例中,发送方在对数据进行加密时使用了第一密钥和第二密钥。第一密钥和第二密钥均为发送方生成,并且不为第一接收方所知。与第一密钥类似,第二密钥也拆分为两个部分,分别是第三子密钥和第四子密钥,发送方基于第一子密钥和第三子密钥用第一接收方公钥加密生成第一子密钥第一密文和第三子密钥第一密文。

第一接收方从发送方接收到数据密文和第一记录标识后,向服务端请求使用解密所需密钥时,服务端使用第一子密钥第一密文和第三子密钥第一密文两者对第一接收方分别进行第一验证和第二验证。服务端验证第二解密结果的方式与验证第一解密结果的方式类似,可参见前述实施例,在此省略具体说明。在第一验证和第二验证通过后,服务端将第一子密钥和第二子密钥组合为第一密钥并用第一接收方公钥加密后发送给第一接收方,并将对应于第二验证的数据发送给第一接收方,使得第一接收方能够对从发送方获得的数据密文进行解密得到数据明文。服务端向第一接收方发送的对应于第二验证的数据的方式取决于第一密钥与第二密钥在对数据加密时的使用方式。

本发明实施例中,第一接收方在解密数据密文时除了需要第一密钥外,还需要第二密钥或者与第二密钥相关的数据,服务端分别针对第一密钥和第二密钥独立对第一接收方进行身份验证,进一步提高了数据密文和密钥的安全性。

在本发明一个实施例中,第三子密钥第一密文通过用第一接收方公钥对第三子密钥加密生成,第一接收方对第三子密钥第一密文解密得到的第二解密结果为第三子密钥。在本发明另一个实施例中,第三子密钥第一密文通过用第一接收方公钥对第一校验数和第三子密钥进行加密生成,第一接收方对第三子密钥第一密文解密得到的第二解密结果是包含第一校验数和第一子密钥的字符串。

在本发明一个实施例中,发送方在对数据加密时,先使用第一密钥对待发送的数据明文进行加密处理得到第一数据密文,然后从第一数据密文中的预定部分抽取第一子数据,用第二子数据替换第一数据密文中原第一子数据的位置,生成第二数据密文,并用第二密钥加密第一子数据得到第一子数据第一密文。第一接收方从发送方接收到的是第二数据密文和第一记录标识,并向服务端发送第一记录标识以请求第一密钥和第一子数据第一密文,服务端用第一子密钥第一密文和第三子密钥第一密文分别对第一接收方进行验证通过后,将第三子密钥和第四子密钥组合成第二密钥解密第一子数据第一密文得到第一子数据,并将第一密钥和第一子数据用第一接收方公钥加密后发送给第一接收方。第一接收方接收到第一密钥和第一子数据后,用第一子数据替换第二数据密文中的预定部分得到第一数据密文,再用第一密钥对第一数据密文解密得到数据明文。在本发明实施例中,通过将对第一数据密文进行上述处理得到的第二数据密文发送给第一接收方,并将解密第二数据密文所必须的第一子数据的密文存储在服务端,使得第一接收方得到的密文数据中包含噪音,必须从服务端获得第一子数据才能解密数据密文,能够有效地防止暴力破解,提高数据密文的安全性。

在本发明一些实施例中,第一接收方在对从发送方获得的数据密文解密时,需要同时持有第一密钥和第二密钥才能完成解密,这时,第一接收方在通过服务端的第二验证时,服务端除了将第一密钥用第一接收方公钥加密发送给第一接收方之外,还将第三子密钥和第四子密钥组合为第二密钥并用第一接收方公钥加密后发送给第一接收方。本发明实施例通过使接收方需得到单独的两个密钥对密文解密后才能得到数据明文,能够提高数据密文的安全性。

图8为本发明的数据分发方法的一个实施例的示意性流程图,本发明实施例应用于发送方客户端。

如图8所示,本发明实施例的数据分发方法包括:

s410、向服务端发送数据分发请求,数据分发请求中包括第n接收方标识以及第一记录标识,其中,第一记录标识由服务端生成并用于在服务端与对数据密文进行解密时所需的第一密钥关联存储,n为正整数;

s411、接收服务端返回的表示已将第n接收方标识与第一记录标识关联存储为第n转发记录的信息;

s412、将数据密文和第一记录标识发送给与第n接收方标识对应的第n接收方。

在本发明实施例中,发送方对于之前通过向服务端发送初始的数据分发请求而请求服务端存储并向第一接收方转发的用于对数据密文解密的密钥数据,还可以通过向服务端发送与该密钥数据相关的新的数据分发请求的方式,请求服务端将存储的该密钥数据转发给其他接收方或允许为其他接收方使用,例如第二接收方、第三接收方……第n接收方,其中n为正整数。其中,上述初始的数据分发请求例如可以为前述图1、图8、图11等实施例中发送方客户端向服务端发送的数据分发请求。

由于发送方已经通过初始的数据分发请求将与数据密文的解密相关的密钥数据发送给服务端,并已经由服务端与分配给该密钥数据或该初始数据分发请求的第一记录标识关联存储为单独的数据分发记录,因此s410中当发送方为其他接收方请求服务端向其他接收方转发或允许为其他接收方使用密钥数据时,也即在为其他接收方向服务端发送的新的数据分发请求时,无需在该新的数据分发请求中携带例如第一密钥等密钥数据,而是只需至少携带第n接收方标识以及第一记录标识。

本发明实施例中,s410中发送方为其他接收方向服务端请求转发服务端已存储的密钥数据的数据分发请求也称为数据再分发请求,由此与初始的数据分发请求相区分。

服务端在从发送方接收到包括第n接收方标识以及第一记录标识的数据再分发请求时,可在包括关联存储的密钥数据和第一记录标识的单独的数据分发记录之外,为第n接收方将第n接收方标识与第一记录标识关联存储为单独的第n转发记录,并向发送方返回已创建第n转发记录的确认信息。发送方在接收到该确认信息后,确认服务端已经做好将与第一记录标识关联的密钥数据转发给第n接收方的准备,因此发送方可以将有该密钥数据参与加密生成的数据密文和第一记录标识发送给与第n接收方标识对应的第n接收方。

第n接收方从发送方接收到数据密文和第一记录标识后,可将包括第一记录标识和第n接收方标识的数据获取请求发送给服务端,服务端响应于该数据获取请求,将密钥数据或相关数据转发给第n接收方。

通过本发明实施例,数据发送方一旦将某数据密文的密钥数据经数据分发请求发送到服务端后,如果数据发送方还需要将同一数据发送给其他任一接收方,可通过向服务端发送数据再分发请求的方式,请求服务端向其他任一接收方转发已经存储在服务端的密钥数据或相关数据,实现了不需要重新加密待发送数据就可以进行快速再分发。

在本发明一个实施例中,发送方发送给服务端的数据再分发请求中还可以包括用于对第n接收方进行验证的第n验证数据,第n验证数据中可以包括第n接收方公钥等数据。服务端可以在响应于第n接收方的数据获取请求而将密钥数据或相关数据转发给第n接收方之前,使用第n验证数据对第n接收方进行验证。例如,服务端可生成一个随机数,用第n接收方公钥对该随机数进行加密后发送给第n接收方,通过检查第n接收方返回的数据是否为该随机数来验证第n接收方的身份。通过本发明实施例,发送方在为不同的数据接收方向服务端发送数据再分发请求时,可以向服务端提供相应的验证用数据,验证方式具有针对性,提高了数据安全性。

在本发明一个实施例中,发送方通过数据再分发请求发送给服务端的第n验证数据中可以包括第n接收方公钥、第n校验数和第一密钥第n密文,第一密钥第n密文通过用第n接收方公钥对第n校验数和第一密钥加密生成。在本发明另一个实施例中,发送方通过数据再分发请求发送给服务端的第n验证数据中可以包括第n接收方公钥、第n校验数和第二密钥第n密文,第二密钥第n密文通过用第n接收方公钥对第n校验数和在数据密文解密时所需的第二密钥进行加密生成。在本发明一些实施例中,发送方通过数据再分发请求发送给服务端的第n验证数据中可以包括第n接收方公钥、第n校验数、上述的第一密钥第n密文以及上述的第二密钥第n密文。

服务端已经在接收到初始的数据分发请求时预存了第一密钥和/或第二密钥,可使用第n校验数以及第一密钥和/或第二密钥来验证第n接收方返回的验证数据。

此外,本发明实施例中,也可以将第一密钥或第二密钥拆分为两个子密钥,将其中一个子密钥在服务端与第一记录标识存储在一起,用其中另一个子密钥生成用于对第n接收方进行验证的子密钥密文并在服务端存储在第n转发记录中。

本发明实施例中,发送方在要生成第一密钥第n密文/第二密钥第n密文时,或者在生成拆分自第一密钥或第二密钥的子密钥的第n密文时,可以用发送方客户端存储的第一密钥和/或第二密钥,或者各个子密钥,也可以通过向服务端发送密钥获取请求的方式获得服务端返回的第一密钥和/或第二密钥,或者各个子密钥。

在本发明一些实施例中,服务端预存了第一记录标识、第一密钥和第二密钥以及第一子数据第一密文,第二密钥用于对第一子数据第一密文进行解密得到第一子数据,第一子数据用于替换数据密文中的预定部分以得到能够由第一密钥进行解密处理的另一数据密文。第n接收方在通过了服务端的验证后,服务端将第一密钥和第一子数据返回给第n接收方。

在本发明另一些实施例中,数据密文包括分别由第一密钥和第二密钥进行解密的第一数据密文和第二数据密文。第n接收方在通过了服务端的验证后,服务端将第一密钥和第二密钥返回给第n接收方。

图9为本发明的数据转发方法的一个实施例的示意性流程图,本发明实施例的数据转发方法应用于服务端。

如图9所示,本发明实施例的数据转发方法包括:

s420、从发送方接收到包括第n接收方标识与第一记录标识的数据分发请求时,将第n接收方标识与第一记录标识关联存储为第n转发记录,其中,所述第一记录标识由服务端生成并用于在服务端与对数据密文进行解密时所需的第一密钥关联存储,n为正整数;

s421、从第n接收方接收到包括第n接收方标识和第一记录标识的数据接收请求时,基于所述第n转发记录将第一密钥发送给第n接收方。

本发明实施例的应用于服务端的数据转发方法对应于图8所示实施例的应用于发送方客户端的数据分发方法,其执行过程可参见对图8所示实施例以及以上其他各个实施例的说明,在此省略详细说明。

图10为本发明的数据转发方法的一个实施例的示意性流程图,本发明实施例的数据转发方法应用于接收方客户端。

如图10所示,本发明实施例的数据转发方法包括:

s430、从数据发送方接收到数据密文和第一记录标识时,向服务端发送包括第一记录标识和第n接收方标识的数据接收请求,第一记录标识由服务端生成并用于在服务端与对数据密文进行解密时所需的第一密钥关联存储,n为正整数;

s431、从服务端获取服务端基于包括第一记录标识和第n接收方标识的第n转发记录而返回的第一密钥,在对数据密文进行解密时使用第一密钥。

本发明实施例的应用于接收方客户端的数据转发方法对应于图8所示实施例的应用于发送方客户端的数据分发方法,其执行过程可参见对图8所示实施例以及以上其他各个实施例的说明,在此省略详细说明。

图11为本发明的数据转发方法的一个实施例的示意性流程图,本发明实施例的数据转发方法应用于发送方客户端。

如图11所示,本发明实施例的数据转发方法包括:

s510、获得数据密文和第一记录标识,其中,第一记录标识由服务端生成并用于在服务端与对数据密文进行解密时所需的第一密钥关联存储;

s511、向服务端发送包括第m接收方标识、第一记录标识和第n接收方标识的数据转发请求,以请求服务端基于包括第m接收方标识和第一记录标识的第m转发记录,将第一记录标识与第n接收方标识关联存储为第n转发记录,n和m为正整数且n不等于m;

s512、将数据密文和第一记录标识发送给第n接收方。

在本发明实施例中,第m接收方为从前述的数据发送方获得数据密文和第一记录标识的任一接收方,第m接收方在需要向第n接收方转发数据时成为对于第n接收方而言的发送方。第一记录标识是在该数据发送方向服务端发送初始的数据分发请求时服务端为该数据分发请求分配的记录标识,并且服务端已将初始的数据分发请求中携带的数据密文解密所需的第一密钥与第一记录标识关联存储为单独的数据分发记录,同时服务端也已经应数据发送方的请求,为第m接收方将第一记录标识与第m接收方标识关联存储为第m转发记录。

第m接收方在从数据发送方获得数据密文和第一记录标识后,可以向服务端发送包括第m接收方标识、第一记录标识和第n接收方标识的数据转发请求。服务端在接收到该数据转发请求后,先根据第m接收方标识和第一记录标识查找是否存在第m转发记录,如是,则为第n接收方将第一记录标识与第n接收方标识关联存储为第n转发记录。

由于第m接收方为服务端第一次转发该密钥数据的接收方,第n接收方为服务端第二次以后转发密钥数据的接收方,本实施例中也将第m接收方向服务端发送的数据转发请求称为数据再转发请求。

第n接收方从第m接收方接收到数据密文和第一记录标识后,可将包括第一记录标识和第n接收方标识的数据获取请求发送给服务端,服务端响应于该数据获取请求,将密钥数据或相关数据转发给第n接收方。

通过本发明实施例,数据发送方将某数据密文和第一记录标识发送给第m接收方后,如果第m接收方需要同一数据转发给其他任一接收方,可通过向服务端发送数据再转发请求的方式,请求服务端向其他任一接收方转发已经存储在服务端的密钥数据或相关数据,实现了不需要重新加密待转发数据就可以进行快速再转发。

在本发明一个实施例中,第m接收方发送给服务端的数据再转发请求中还可以包括用于对第n接收方进行验证的第n验证数据,第n验证数据中可以包括第n接收方公钥等数据。服务端可以在响应于第n接收方的数据获取请求而将密钥数据或相关数据转发给第n接收方之前,使用第n验证数据对第n接收方进行验证。例如,服务端可生成一个随机数,用第n接收方公钥对该随机数进行加密后发送给第n接收方,通过检查第n接收方返回的数据是否为该随机数来验证第n接收方的身份。通过本发明实施例,第m接收方在为不同的其他数据接收方向服务端发送数据再转发请求时,可以向服务端提供相应的验证用数据,验证方式具有针对性,提高了数据安全性。

在本发明一个实施例中,第m接收方通过数据再转发请求发送给服务端的第n验证数据中可以包括第n接收方公钥、第n校验数和第一密钥第n密文,第一密钥第n密文通过用第n接收方公钥对第n校验数和第一密钥加密生成。在本发明另一个实施例中,第m接收方通过数据再转发请求发送给服务端的第n验证数据中可以包括第n接收方公钥、第n校验数和第二密钥第n密文,第二密钥第n密文通过用第n接收方公钥对第n校验数和在数据密文解密时所需的第二密钥进行加密生成。在本发明一些实施例中,第m接收方通过数据再转发请求发送给服务端的第n验证数据中可以包括第n接收方公钥、第n校验数、上述的第一密钥第n密文以及上述的第二密钥第n密文。

服务端已经在接收到初始的数据分发请求时预存了第一密钥和/或第二密钥,可使用第n校验数以及第一密钥和/或第二密钥来验证第n接收方返回的验证数据。

此外,本发明实施例中,也可以将第一密钥或第二密钥拆分为两个子密钥,将其中一个子密钥在服务端与第一记录标识存储在一起,用其中另一个子密钥生成用于对第n接收方进行验证的子密钥密文并在服务端存储在第n转发记录中。

本发明实施例中,第m接收方在要生成第一密钥第n密文/第二密钥第n密文时,或者在生成拆分自第一密钥或第二密钥的子密钥的第n密文时,可以用第m接收方客户端存储的第一密钥和/或第二密钥,或者各个子密钥,也可以通过向服务端发送密钥获取请求的方式获得服务端返回的第一密钥和/或第二密钥,或者各个子密钥。

在本发明一些实施例中,服务端预存了第一记录标识、第一密钥和第二密钥以及第一子数据第一密文,第二密钥用于对第一子数据第一密文进行解密得到第一子数据,第一子数据用于替换数据密文中的预定部分以得到能够由第一密钥进行解密处理的另一数据密文。第n接收方在通过了服务端的验证后,服务端将第一密钥和第一子数据返回给第n接收方。

在本发明另一些实施例中,数据密文包括分别由第一密钥和第二密钥进行解密的第一数据密文和第二数据密文。第n接收方在通过了服务端的验证后,服务端将第一密钥和第二密钥返回给第n接收方。

图12为本发明的数据转发方法的一个实施例的示意性流程图,本发明实施例的数据转发方法应用于服务端。

如图12所示,本发明实施例的数据转发方法包括:

s520、从第m接收方接收到包括第m接收方标识、第一记录标识和第n接收方标识的数据转发请求时,基于包括第m接收方标识和第一记录标识的第m转发记录,将第一记录标识与第n接收方标识关联存储为第n转发记录,第一记录标识由服务端生成并用于在服务端与对数据密文进行解密时所需的第一密钥关联存储,n和m为正整数且n不等于m;

s521、从第n接收方接收到包括第n接收方标识和第一记录标识的数据接收请求时,基于所述第n转发记录将第一密钥发送给第n接收方。

本发明实施例的应用于服务端的数据转发方法对应于图11所示实施例的应用于发送方客户端的数据分发方法,其执行过程可参见对图11所示实施例以及以上其他各个实施例的说明,在此省略详细说明。

图13为本发明的数据转发方法的一个实施例的示意性流程图,本发明实施例的数据转发方法应用于接收方客户端。

如图13所示,本发明实施例的数据转发方法包括:

s530、从第m接收方接收到数据密文和第一记录标识时,向服务端发送包括第一记录标识和第n接收方标识的数据接收请求,其中,所述第一记录标识由服务端生成并用于在服务端与对数据密文进行解密时所需的第一密钥关联存储,n为正整数;

s530、从服务端获取服务端基于包括所述第一记录标识和第n接收方标识的第n转发记录而返回的所述第一密钥,在对数据密文进行解密时使用第一密钥。

本发明实施例的应用于接收方客户端的数据转发方法对应于图11所示实施例的应用于发送方客户端的数据分发方法,其执行过程可参见对图11所示实施例以及以上其他各个实施例的说明,在此省略详细说明。

在本发明的上述任一实施例中,服务端在接收到发送方随数据分发请求发送的信息和数据时,可将这些信息和数据以其中的第一接收方标识为索引进行存储,并与所分配的第一记录标识关联存储。当发送方希望撤销针对第一接收方而请求服务端转发的相关数据时,发送方可以通过向服务端发送包括第一记录标识和第一接收方标识的数据分发撤销请求来请求服务端将第一接收方标识以及与第一接收方标识关联存储的信息删除。服务端在接收到发送方针对第一接收方而发送的包括第一记录标识和第一接收方标识的数据分发撤销请求时,可将包括第一接收方标识以及与第一接收方标识关联存储的信息的单独的转发记录删除。在服务端删除第一接收方标识及关联存储的信息后,第一接收方向服务端发送包括第一接收方标识的数据接收请求时,服务端将找不到第一接收方标识相关的转发记录,从而将不会响应于接收请求向第一接收方返回第一密钥等解密用数据,实现了发送方对已分发数据的及时撤销。同时,服务端将包括第一接收方标识以及与第一接收方标识关联存储的信息的单独的转发记录删除不影响包括第一记录标识及第二子密钥密文等的单独的数据分发记录,如发送方需要恢复针对第一接收方的数据分发,可向服务端发送包括第一接收方标识、第一子密钥第一密文、第一接收方公钥等信息和数据的数据重分发请求,服务端可重新将这些信息和数据存储为单独的转发记录,从而第一接收方能够从服务端获取解密所需数据。

本发明实施例还提供了一种数据分发/转发装置,可由包括处理器和存储器的终端设备来实现,处理器可以配置为运行存储器中所存储的预定的计算机指令来执行上述任一实施例中的应用于发送方客户端的数据分发/转发方法。

本发明实施例还提供了一种数据转发装置,可由包括处理器和存储器并用作服务器的终端设备来实现,处理器可以配置为运行存储器中所存储的预定的计算机指令来执行上述任一实施例中的应用于服务端的数据转发方法。

本发明实施例还提供了一种数据转发装置,可由包括处理器和存储器的终端设备来实现,处理器可以配置为运行存储器中所存储的预定的计算机指令来执行上述任一实施例中的应用于接收方客户端的数据转发方法。

由于本申请中不可能穷举所有的实施例,也不可能穷尽技术特征之间的所有组合方式,因此本发明不限于所提供的这些特定的实施例,本领域技术人员在本申请所公开实施例的基础上,完全能够在不脱离本发明精神和构思的情况下对这些实施例进行多种变型和修改,这些变型和修改的实施例均应落入本申请所要求保护的范围之内。

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