数据传输系统和方法转让专利

申请号 : CN201110294062.4

文献号 : CN102412967B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杜宇宋永强

申请人 : 用友软件股份有限公司

摘要 :

本发明提供了一种数据传输系统和方法,对需要进行传输的数据进行安全级别的界定,并对不同安全级别的数据进行不同形式的加密处理,该加密处理使用一个或多个加密算法组合而成的链式加密过程,从而既保证了数据的安全性,又可以保证加密算法的处理过程适应于需要传输的数据及处理装置。

权利要求 :

1.一种数据传输系统,其特征在于,包括:存储装置、服务器和终端,其中,所述存储装置,用于对应地存储多个安全级别及多个加密算法组合数据,所述加密算法组合数据中包含至少一种算法的标识以及所述标识的排列顺序;

所述服务器包括:

第一通信模块,连接至所述存储装置和所述终端,用于与所述存储装置或所述终端进行通信;

设定模块,用于设定所述存储装置中的所述安全级别及对应的所述加密算法组合数据中包含的算法的标识;

所述终端包括:

第二通信模块,用于与所述服务器进行通信;

获取模块,用于获取数据的安全级别;

查询模块,根据所述获取模块获取的所述安全级别,从所述存储装置中查询对应于所述安全级别的加密算法组合数据;

加密模块,按照所述查询模块查询到的所述加密算法组合数据中包含的标识的排列顺序,并利用所述标识对应的加密算法对所述数据进行加密,其中,后一种加密算法的输入为前一种加密算法的输出,并得到最终加密数据包;

处理模块,通过所述第二通信模块,将来自所述加密模块的所述最终加密数据包或密钥发送至所述服务器,其中,所述密钥为对应于加密算法的至少一组密钥中需要进行交换的密钥,且所述加密算法对应于所述加密算法组合中的标识;

解密模块,通过所述第二通信模块接收来自所述服务器的所述最终加密数据包或所述密钥,并利用所述密钥对所述最终加密数据包进行解密,得到所述数据。

2.根据权利要求1所述的数据传输系统,其特征在于,包括:所述存储装置位于所述服务器中和/或位于所述服务器外部和/或位于所述终端中。

3.根据权利要求1所述的数据传输系统,其特征在于,所述服务器还包括:密钥管理模块,用于存储用户的所述密钥,并在所述终端进行数据的加密或解密时,通过所述第一通信模块将所述密钥发送至所述终端进行对应操作。

4.根据权利要求1所述的数据传输系统,其特征在于,所述加密算法组合数据中包括数字签名算法的标识。

5.根据权利要求1所述的数据传输系统,其特征在于,包括:所述加密模块利用所述加密算法数据对所述数据进行加密后,得到的加密数据包的头部对应于所述加密算法;以及所述解密模块通过识别所述最终加密数据包或中间层的加密数据包的头部,获取对应于该头部的加密算法,并利用对应的密钥解密所述加密算法。

6.根据权利要求1至5中任一项所述的数据传输系统,其特征在于,包括:使用的加密算法兼容不同平台的系统,所述系统包括Windows、Linux、MacOS、IOS和/或Android;以及所述服务器还包括转换模块,在发送数据的起始终端和接收数据的目标终端的系统不同时,将来自所述起始终端的最终数据包进行格式转换后通过所述第一通信模块发送至所述目标终端。

7.一种数据传输方法,其特征在于,包括:

步骤202,确定多种加密算法,并由需要进行数据传输的多个用户确定针对所述加密算法的至少一组密钥,以及所述多个用户之间交换所述密钥;

步骤204,设定多个安全级别及多个加密算法组合数据,并将所述安全级别与所述加密算法组合数据进行对应地存储,所述加密算法组合数据中包含算法的标识;

步骤206,起始终端获取数据的安全级别,根据所述安全级别获取对应的加密算法组合数据,按照所述加密算法组合数据中包含的标识的排列顺序,并利用所述标识对应的加密算法对所述数据进行加密,其中,后一种加密算法的输入为前一种加密算法的输出,以及将得到的最终加密数据包发送至目标终端;

步骤208,所述目标终端接收来自所述起始终端的所述最终加密数据包,并利用所述密钥对所述最终加密数据包进行解密,得到所述数据。

8.根据权利要求7所述的数据传输方法,其特征在于,所述加密算法组合数据中包括数字签名算法的标识。

9.根据权利要求7所述的数据传输方法,其特征在于,包括:利用所述加密算法数据对所述数据进行加密后,得到的加密数据包的头部对应于所述加密算法;以及所述目标终端通过识别所述最终加密数据包或中间层的加密数据包的头部,获取对应于该头部的加密算法,并利用对应的密钥解密所述加密算法。

10.根据权利要求7至9中任一项所述的数据传输方法,其特征在于,包括:使用的加密算法兼容不同平台的系统,所述系统包括Windows、Linux、MacOS、IOS和/或Android;以及在发送数据的起始终端和接收数据的目标终端的系统不同时,将来自所述起始终端的最终数据包进行格式转换后发送至所述目标终端。

说明书 :

数据传输系统和方法

技术领域

[0001] 本发明涉及数据传输技术,具体而言,涉及数据传输系统和方法背景技术
[0002] 在现有的软件加密系统中,大部分的应用程序在使用加密解密功能时都使用了固定加密算法(组合)的方式保护数据的安全性。这样做的好处是显而易见的:使用固定加密算法(组合)的加密模块设计简单,在选用高强度加密算法后,其数据安全性能很好。但是这样的设计缺陷也是非常明显的:不论数据特性如何,统一的按照相同的加密解密方法来处理,对于绝密数据来说,有可能加密强度不够,对于公开数据来说,则完全没有必要,有可能浪费计算资源;同时,长时间使用同一种加密算法(以及密钥集)也有可能给攻击者提供便利,不利于数据安全。而尤其是在移动设备中,这种缺陷更加显著:在计算能力弱,并且受到网络连接和电池电量制约的系统中,如何平衡性能功耗比也是很关键的特性指标。
[0003] 因此,需要一种新的数据传输技术,既可以保证数据的安全性,又可以保证加密算法的处理过程适应于需要传输的数据及处理装置。

发明内容

[0004] 本发明正是基于上述问题,提出了一种新的数据传输技术,既可以保证数据的安全性,又可以保证加密算法的处理过程适应于需要传输的数据及处理装置。
[0005] 有鉴于此,本发明提出了一种数据传输系统,包括:存储装置、服务器和终端,其中,所述存储装置,用于对应地存储多个安全级别及多个加密算法组合数据,所述加密算法组合数据中包含至少一种算法的标识以及所述标识的排列顺序;所述服务器包括:第一通信模块,连接至所述存储装置和所述终端,用于与所述存储装置或所述终端进行通信;设定模块,用于设定所述存储装置中的所述安全级别及对应的所述加密算法组合数据中包含的算法的标识;所述终端包括:第二通信模块,用于与所述服务器进行通信;获取模块,用于获取数据的安全级别;查询模块,根据所述获取模块获取的所述安全级别,从所述存储装置中查询对应于所述安全级别的加密算法组合数据;加密模块,按照所述查询模块查询到的所述加密算法组合数据中包含的标识的排列顺序,并利用所述标识对应的加密算法对所述数据进行加密,其中,后一种加密算法的输入为前一种加密算法的输出,并得到最终加密数据包;处理模块,通过所述第二通信模块,将来自所述加密模块的所述最终加密数据包或密钥发送至所述服务器,其中,所述密钥为对应于加密算法的至少一组密钥中需要进行交换的密钥,且所述加密算法对应于所述加密算法组合中的标识;解密模块,通过所述第二通信模块接收来自所述服务器的所述最终加密数据包或所述密钥,并利用所述密钥对所述最终加密数据包进行解密,得到所述数据。在该技术方案中,加密处理时使用的加密算法可以为一种或多种,主要取决于对应的数据的重要程度,可以进行相应地修改。而加密处理时,采用了链式的处理方式,即前一种算法的输出结果为后一种算法的输入,且组合方式可以随意变化,不受限制,从而可以有效地提高传输的安全性。此外,在进行具体的数据传输之前,还需要数据的传输双方对加密或解密所需要的密钥进行交换,该密钥可以是对称密钥加密算法中的秘密密钥,也可以是非对称密钥加密(或者数据签名)算法中的公开密钥或者私密密钥,这对于本发明并没有影响。密钥可以为一组或多组,只要能够满足所有的加密算法的需要即可。
[0006] 在上述技术方案中,优选地,包括:所述存储装置位于所述服务器中和/或位于所述服务器外部和/或位于所述终端中。在该技术方案中,可以利用服务器中的存储空间进行存储,也可以采用单独的存储装置,这对于本发明没有影响,且有利于系统搭建时,充分利用资源。此外,还可以直接将存储装置置于终端中,从而方便终端对存储的数据进行获取和利用。
[0007] 在上述技术方案中,优选地,所述服务器还包括:密钥管理模块,用于存储所述用户的所述密钥,并在所述终端进行数据的加密或解密时,通过所述第一通信模块将所述密钥发送至所述终端进行对应操作。在该技术方案中,用户可以将交换后得到的密钥或自己的密钥存储在服务器中,这样有利于保证密钥的安全性,也方便用户进行管理,防止密钥丢失或在过多的密钥中寻找需要的密钥。当然,用户也可以保存在本地或其他地方,对于本发明的实施不会造成影响。
[0008] 在上述技术方案中,优选地,所述加密算法组合数据中包括数字签名算法的标识。在上述技术方案中,所使用的加密算法中,若使用数字签名算法,则可以有效的防止假冒身份的恶意节点伪造数据进行攻击,因为在相关技术中,一定强度的数字签名算法被破解的概率极小,从而解决了数据的源和目的双方缺乏身份认证可能导致假冒身份的问题。
[0009] 在上述技术方案中,优选地,包括:所述加密模块利用所述加密算法数据对所述数据进行加密后,得到的加密数据包的头部对应于所述加密算法;以及所述解密模块通过识别所述最终加密数据包或中间层的加密数据包的头部,获取对应于该头部的加密算法,并利用对应的密钥解密所述加密算法。在该技术方案中,由于可能采用多种加密算法对数据进行处理,因此在进行解密时,也需要进行相应的方法。比如对于采用了多种加密算法,可以将先采用的加密算法得到的加密包视为“内层”的加密包,而后采用的加密算法得到的加密包视为“外层”的加密包,则对于用户得到的加密包,首先应该对外层的加密包进行解密。这里主要是通过对加密包的头部进行分析,从而得知该层加密算法的种类,这是由于采用一种加密算法对数据进行加密处理后,得到的加密包的头部会留下对应于该算法的标识,从而可以通过识别加密包的头部的标识,从而了解到所采用的加密算法,并利用密钥进行解密,得到里面一层的加密包。然后再对新得到的加密包的头部进行识别并解密该加密包。最后,通过对每一层加密包的解密,得到用户需要的数据。
[0010] 在上述技术方案中,优选地,包括:使用的加密算法兼容不同平台的系统,所述系统包括Windows、Linux、MacOS、IOS和/或Android;以及所述服务器还包括转换模块,在发送数据的起始终端和接收数据的目标终端的系统不同时,将来自所述起始终端的最终数据包进行格式转换后通过所述第一通信模块发送至所述目标终端。在该技术方案中,本发明的数据传输方案可以用于固定PC平台,也可以用于移动平台,这是由于在本发明中使用了单独存储加密算法组合数据的存储装置,从而保证各个系统都能够进行正常的数据交换,提升用户体验。此外,终端在进行加密数据包的传输时,可以在终端之间直接进行发送,也可以通过服务器进行转发,从而实现不同平台的兼容。
[0011] 根据本发明的又一方面,还提出了一种数据传输方法,包括:步骤202,确定多种加密算法,并由需要进行数据传输的多个用户确定针对所述加密算法的至少一组密钥,以及所述多个用户之间交换所述密钥;步骤204,设定多个安全级别及多个加密算法组合数据,并将所述安全级别与所述加密算法组合数据进行对应地存储,所述加密算法组合数据中包含算法的标识;步骤206,起始终端获取数据的安全级别,根据所述安全级别获取对应的加密算法组合数据,按照所述加密算法组合数据中包含的标识的排列顺序,并利用所述标识对应的加密算法对所述数据进行加密,其中,后一种加密算法的输入为前一种加密算法的输出,以及将得到的最终加密数据包发送至目标终端;步骤208,所述目标终端接收来自所述起始终端的所述最终加密数据包,并利用所述密钥对所述最终加密数据包进行解密,得到所述数据。在该技术方案中,加密处理时使用的加密算法可以为一种或多种,主要取决于对应的数据的重要程度,可以进行相应地修改。而加密处理时,采用了链式的处理方式,即前一种算法的输出结果为后一种算法的输入,且组合方式可以随意变化,不受限制,从而可以有效地提高传输的安全性。此外,在进行具体的数据传输之前,还需要数据的传输双方对加密或解密所需要的密钥进行交换,该密钥可以是对称密钥加密算法中的秘密密钥,也可以是非对称密钥加密(或者数据签名)算法中的公开密钥或者私密密钥,这对于本发明并没有影响。密钥可以为一组或多组,只要能够满足所有的加密算法的需要即可。此外,对于用户的密钥以及交换后得到的密钥,可以存储在服务器中,这样有利于保证密钥的安全性,也方便用户进行管理,防止密钥丢失或在过多的密钥中寻找需要的密钥。当然,用户也可以保存在本地或其他地方,对于本发明的实施不会造成影响。
[0012] 在上述技术方案中,优选地,所述加密算法组合数据中包括数字签名算法的标识。在上述技术方案中,所使用的加密算法中,若使用数字签名算法,则可以有效的防止假冒身份的恶意节点伪造数据进行攻击,因为在相关技术中,一定强度的数字签名算法被破解的概率极小,从而解决了数据的源和目的双方缺乏身份认证可能导致假冒身份的问题。
[0013] 在上述技术方案中,优选地,包括:利用所述加密算法数据对所述数据进行加密后,得到的加密数据包的头部对应于所述加密算法;以及所述目标终端通过识别所述最终加密数据包或中间层的加密数据包的头部,获取对应于该头部的加密算法,并利用对应的密钥解密所述加密算法。在该技术方案中,由于可能采用多种加密算法对数据进行处理,因此在进行解密时,也需要进行相应的方法。比如对于采用了多种加密算法,可以将先采用的加密算法得到的加密包视为“内层”的加密包,而后采用的加密算法得到的加密包视为“外层”的加密包,则对于用户得到的加密包,首先应该对外层的加密包进行解密。这里主要是通过对加密包的头部进行分析,从而得知该层加密算法的种类,这是由于采用一种加密算法对数据进行加密处理后,得到的加密包的头部会留下对应于该算法的标识,从而可以通过识别加密包的头部的标识,从而了解到所采用的加密算法,并利用密钥进行解密,得到里面一层的加密包。然后再对新得到的加密包的头部进行识别并解密该加密包。最后,通过对每一层加密包的解密,得到用户需要的数据。
[0014] 在上述技术方案中,优选地,包括:使用的加密算法兼容不同平台的系统,所述系统包括Windows、Linux、MacOS、IOS和/或Android;以及在发送数据的起始终端和接收数据的目标终端的系统不同时,将来自所述起始终端的最终数据包进行格式转换后发送至所述目标终端。在该技术方案中,本发明的数据传输方案可以用于固定PC平台,也可以用于移动平台,这是由于在本发明中使用了全兼容性的加密算法库,并利用服务器进行中转从而保证各个系统都能够进行正常的数据交换,提升用户体验。此外,终端在进行加密数据包的传输时,可以在终端之间直接进行发送,也可以通过服务器进行转发,从而实现不同平台的兼容。
[0015] 通过以上技术方案,既可以保证数据的安全性,又可以保证加密算法的处理过程适应于需要传输的数据及处理装置。

附图说明

[0016] 图1A示出了根据本发明的实施例的数据传输系统的框图;
[0017] 图1B示出了根据本发明的实施例的数据传输系统的框图;
[0018] 图2示出了根据本发明的实施例的数据传输方法的流程图;
[0019] 图3示出了根据本发明的实施例的交换密钥的示意图;
[0020] 图4示出了根据本发明的实施例的数据加密的示意流程图;
[0021] 图5示出了根据本发明的实施例的数据解密的示意流程图;
[0022] 图6示出了根据本发明的实施例的数据交换的示意图;
[0023] 图7示出了根据本发明的实施例的数据加密的流程图;
[0024] 图8示出了根据本发明的实施例的数据加密安全策略的示意图;以及[0025] 图9示出了根据本发明的实施例的数据传输的示意图。

具体实施方式

[0026] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
[0027] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
[0028] 图1A示出了根据本发明的实施例的数据传输系统的框图;图1B示出了根据本发明的实施例的数据传输系统的框图。
[0029] 如图1A所示,根据本发明的实施例的数据传输系统100,包括:存储装置102、服务器104和终端106,其中,存储装置102,用于对应地存储多个安全级别及多个加密算法组合数据,所述加密算法组合数据中包含至少一种算法的标识以及标识的排列顺序;服务器104包括:第一通信模块108,连接至存储装置102和终端106,用于与存储装置102或终端
106进行通信;设定模块110,用于设定存储装置102中的安全级别及对应的加密算法组合数据中包含的算法的标识;终端包括:第二通信模块114,用于与服务器104进行通信;获取模块116,用于获取数据的安全级别;查询模块118,根据获取模块116获取的安全级别,从存储装置102中查询对应于安全级别的加密算法组合数据;加密模块120,按照查询模块
118查询到的加密算法组合数据中包含的标识的排列顺序,并利用标识对应的加密算法对数据进行加密,其中,后一种加密算法的输入为前一种加密算法的输出,并得到最终加密数据包;处理模块122,通过第二通信模块114,将来自加密模块120的最终加密数据包或密钥发送至服务器104,其中,密钥为对应于加密算法的至少一组密钥中需要进行交换的密钥,且加密算法对应于加密算法组合中的标识;解密模块124,通过第二通信模块114接收来自服务器104的最终加密数据包或密钥,并利用密钥对最终加密数据包进行解密,得到数据。
在该技术方案中,加密处理时使用的加密算法可以为一种或多种,主要取决于对应的数据的重要程度,可以进行相应地修改。而加密处理时,采用了链式的处理方式,即前一种算法的输出结果为后一种算法的输入,且组合方式可以随意变化,不受限制,从而可以有效地提高传输的安全性。此外,在进行具体的数据传输之前,还需要数据的传输双方对加密或解密所需要的密钥进行交换,该密钥可以是对称密钥加密算法中的秘密密钥,也可以是非对称密钥加密(或者数据签名)算法中的公开密钥或者私密密钥,这对于本发明并没有影响。密钥可以为一组或多组,只要能够满足所有的加密算法的需要即可。
[0030] 在上述技术方案中,包括:存储装置102位于服务器104中和/或位于服务器104外部和/或位于终端106中。在该技术方案中,可以利用服务器104中的存储空间进行存储,也可以采用单独的存储装置102,这对于本发明没有影响,且有利于系统100搭建时,充分利用资源。此外,还可以直接将存储装置102置于终端106中,从而方便终端106对存储的数据进行获取和利用。
[0031] 在上述技术方案中,服务器104还包括:密钥管理模块112,用于存储用户的密钥,并在终端106进行数据的加密或解密时,通过第一通信模块108将密钥发送至终端106进行对应操作。在该技术方案中,用户可以将交换后得到的密钥或自己的密钥存储在服务器104中,这样有利于保证密钥的安全性,也方便用户进行管理,防止密钥丢失或在过多的密钥中寻找需要的密钥。当然,用户也可以保存在本地或其他地方,对于本发明的实施不会造成影响。
[0032] 在上述技术方案中,加密算法组合数据中包括数字签名算法的标识。在上述技术方案中,所使用的加密算法中,若使用数字签名算法,则可以有效的防止假冒身份的恶意节点伪造数据进行攻击,因为在相关技术中,一定强度的数字签名算法被破解的概率极小,从而解决了数据的源和目的双方缺乏身份认证可能导致假冒身份的问题。
[0033] 在上述技术方案中,包括:加密模块120利用加密算法数据对数据进行加密后,得到的加密数据包的头部对应于加密算法;以及解密模块124通过识别最终加密数据包或中间层的加密数据包的头部,获取对应于该头部的加密算法,并利用对应的密钥解密加密算法。在该技术方案中,由于可能采用多种加密算法对数据进行处理,因此在进行解密时,也需要进行相应的方法。比如对于采用了多种加密算法,可以将先采用的加密算法得到的加密包视为“内层”的加密包,而后采用的加密算法得到的加密包视为“外层”的加密包,则对于用户得到的加密包,首先应该对外层的加密包进行解密。这里主要是通过对加密包的头部进行分析,从而得知该层加密算法的种类,这是由于采用一种加密算法对数据进行加密处理后,得到的加密包的头部会留下对应于该算法的标识,从而可以通过识别加密包的头部的标识,从而了解到所采用的加密算法,并利用密钥进行解密,得到里面一层的加密包。然后再对新得到的加密包的头部进行识别并解密该加密包。最后,通过对每一层加密包的解密,得到用户需要的数据。
[0034] 在上述技术方案中,包括:使用的加密算法兼容不同平台的系统,该系统包括Windows、Linux、MacOS、IOS和/或Android;以及服务器104还包括转换模块113,在发送数据的起始终端和接收数据的目标终端的系统不同时,将来自起始终端的最终数据包进行格式转换后通过所述第一通信模块发送至所述目标终端。在该技术方案中,本发明的数据传输方案可以用于固定PC平台,也可以用于移动平台,这是由于在本发明中使用了具有全兼容性的加密算法库,并由服务器104进行数据中转,从而保证各个系统都能够进行正常的数据交换,提升用户体验。此外,终端106在进行加密数据包的传输时,可以在终端106之间直接进行发送,也可以通过服务器104进行转发,从而实现不同平台的兼容。
[0035] 对于存储装置102位于服务器104中的情况,如图1B所示:
[0036] 在数据传输系统1000中,包括服务器1004和终端1006,其中,服务器1004中包括了存储装置1002,这样有利于充分利用现有的装置或服务器1004中的空闲存储空间资源,从而降低系统搭建成本。
[0037] 图2示出了根据本发明的实施例的数据传输方法的流程图。
[0038] 如图2所示,根据本发明的实施例的数据传输方法,包括:步骤202,确定多种加密算法,并由需要进行数据传输的多个用户确定针对该加密算法的至少一组密钥,以及多个用户之间交换密钥;步骤204,设定多个安全级别及多个加密算法组合数据,并将安全级别与加密算法组合数据进行对应地存储,加密算法组合数据中包含算法的标识;步骤206,起始终端获取数据的安全级别,根据安全级别获取对应的加密算法组合数据,按照加密算法组合数据中包含的标识的排列顺序,并利用该标识对应的加密算法对数据进行加密,其中,后一种加密算法的输入为前一种加密算法的输出,以及将得到的最终加密数据包发送至目标终端;步骤208,目标终端接收来自起始终端的最终加密数据包,并利用密钥对最终加密数据包进行解密,得到数据。在该技术方案中,加密处理时使用的加密算法可以为一种或多种,主要取决于对应的数据的重要程度,可以进行相应地修改。而加密处理时,采用了链式的处理方式,即前一种算法的输出结果为后一种算法的输入,且组合方式可以随意变化,不受限制,从而可以有效地提高传输的安全性。此外,在进行具体的数据传输之前,还需要数据的传输双方对加密或解密所需要的密钥进行交换,该密钥可以是对称密钥加密算法中的秘密密钥,也可以是非对称密钥加密(或者数据签名)算法中的公开密钥或者私密密钥,这对于本发明并没有影响。密钥可以为一组或多组,只要能够满足所有的加密算法的需要即可。此外,对于用户的密钥以及交换后得到的密钥,可以存储在服务器中,这样有利于保证密钥的安全性,也方便用户进行管理,防止密钥丢失或在过多的密钥中寻找需要的密钥。当然,用户也可以保存在本地或其他地方,对于本发明的实施不会造成影响。
[0039] 在上述技术方案中,加密算法组合数据中包括数字签名算法的标识。在上述技术方案中,所使用的加密算法中,若使用数字签名算法,则可以有效的防止假冒身份的恶意节点伪造数据进行攻击,因为在相关技术中,一定强度的数字签名算法被破解的概率极小,从而解决了数据的源和目的双方缺乏身份认证可能导致假冒身份的问题。
[0040] 在上述技术方案中,包括:利用加密算法数据对数据进行加密后,得到的加密数据包的头部对应于加密算法;以及目标终端通过识别最终加密数据包或中间层的加密数据包的头部,获取对应于该头部的加密算法,并利用对应的密钥解密加密算法。在该技术方案中,由于可能采用多种加密算法对数据进行处理,因此在进行解密时,也需要进行相应的方法。比如对于采用了多种加密算法,可以将先采用的加密算法得到的加密包视为“内层”的加密包,而后采用的加密算法得到的加密包视为“外层”的加密包,则对于用户得到的加密包,首先应该对外层的加密包进行解密。这里主要是通过对加密包的头部进行分析,从而得知该层加密算法的种类,这是由于采用一种加密算法对数据进行加密处理后,得到的加密包的头部会留下对应于该算法的标识,从而可以通过识别加密包的头部的标识,从而了解到所采用的加密算法,并利用密钥进行解密,得到里面一层的加密包。然后再对新得到的加密包的头部进行识别并解密该加密包。最后,通过对每一层加密包的解密,得到用户需要的数据。
[0041] 在上述技术方案中,包括:使用的加密算法兼容不同平台的系统,系统包括Windows、Linux、MacOS、IOS和/或Android;以及在发送数据的起始终端和接收数据的目标终端的系统不同时,将来自起始终端的最终数据包进行格式转换后发送至目标终端。在该技术方案中,本发明的数据传输方案可以用于固定PC平台,也可以用于移动平台,这是由于在本发明中使用了全兼容性的加密算法库,并利用服务器进行中转从而保证各个系统都能够进行正常的数据交换,提升用户体验。此外,终端在进行加密数据包的传输时,可以在终端之间直接进行发送,也可以通过服务器进行转发,从而实现不同平台的兼容。
[0042] 图3示出了根据本发明的实施例的交换密钥的示意图。
[0043] 如图3所示,终端A304、终端B306和终端C308在进行数据传输前,首先需要获取对应于需要用到的所有加密算法的密钥,并将各自的密钥进行交换,以便对接收到的来自其他终端的加密数据进行解密。为了提高密钥交换时的安全性,由终端A304、终端B306和终端C308通过服务器302进行中转,即服务器302接收需要交换的密钥,再将该密钥发送至对应的终端。在终端A304、终端B306和终端C308与服务器302之间进行密钥传输时,使用HTTPS协议或者能完成同样功能的替代协议完成,且服务器302拥有自己的服务器证书识别,用于终端A304、终端B306和终端C308识别服务器302的身份,防止被伪装的服务器窃取密钥或其他信息。
[0044] 对于本发明中的链式加密方式,下面接合同图4和图5进行详细说明,其中,图4示出了根据本发明的实施例的数据加密的示意流程图;图5示出了根据本发明的实施例的数据解密的示意流程图。
[0045] 如图4所示,首先确定需要进行传输的数据402,并确定好其使用的加密算法组合,比如对于数据402采用算法A+算法B+......+算法X的组合方式,则先将数据402用算法A进行加密,得到第一加密数据包404;将第一加密数据包404作为输入,使用算法B进行加密处理,得到第二加密数据包406,这时得到的第二加密数据包406是基于第一加密数据包404进行处理得到的,而不是直接基于原始数据得到的,从而提高了安全性。然后,可以继续将第二加密数据包406作为输入,使用后续的加密算法进行加密处理,至得到第N加密数据包408,然后将该第N加密数据包408作为输入,使用算法X进行处理,得到最终加密数据包410。
[0046] 在上述加密过程中,终端是使用一组或多组密钥进行的,只要密钥本身可以适应所需要用到的算法,其密钥的使用数量并不受限制,但显而易见的是,使用多组密钥可以增加安全性。
[0047] 如图5所示,对于得到了最终加密数据包510的终端,其解密步骤如下:终端使用密钥X对最终加密数据包502进行解密,这里的密钥X对应于算法X,得到第N加密数据包504,然后对第N加密数据包504进行解密,得到内层的数据包。在得到第二加密数据包506后,使用密钥B对该第二加密数据包506进行解密,这里的密钥B对应于算法B,得到第一加密数据包508,最后使用密钥A对该第一加密数据包508进行解密,得到数据510。
[0048] 上述解密过程中,对于使用的密钥的选择,是通过查看加密数据包的头部,这里的加密数据包的头部在数据被加密得到该加密数据包时,会产生对应于该加密算法的标识,从而可以得知应该使用的密钥。
[0049] 图6示出了根据本发明的实施例的数据交换的示意图。
[0050] 如图6所示,在常见的通信过程中,可能出现终端A602向终端B604发送数据,终端B604收到后回复数据的工作过程。在该过程中,终端A602和终端B604并不需要使用相同的加密组合方式,比如,终端A604首先发送数据给终端B604,在对数据进行加密时,使用了算法X-算法Y的加密方式,即将数据首先使用算法X加密,得到加密数据包后,再对该加密数据包用算法Y进行加密,得到的加密数据包用于发送给终端B604。
[0051] 而终端B604返回数据给终端A602时,在对数据进行加密时,使用了算法M-算法X的加密方式,即将数据首先使用算法M加密,得到加密数据包后,再对该加密数据包用算法X进行加密,得到的加密数据包用于发送给终端A602。
[0052] 图7示出了根据本发明的实施例的数据加密的流程图。
[0053] 如图7所示,在终端选择好需要进行传输的数据后,进行加密处理的步骤如下:
[0054] 步骤702,获取数据的安全级别,这里的安全级别可以是数据本身包含的标识,也可以由用户输入;
[0055] 步骤704,查询安全策略,这里的安全策略是事先与安全级别对应存储的,比如包含安全级别A和B,其中,安全级别A对应于算法X+算法Y的安全策略,而安全级别B对应于算法M+算法X的安全策略;
[0056] 步骤706,获取加密方案,这里就是指获取步骤704查询到的安全策略对应的具体的方案,如算法X+算法Y,当然,步骤704中可能有时没有查询到对应的安全策略或是本来就不存在对应的安全策略,这时可以由用户手动输入希望使用的安全策略;
[0057] 步骤708,初始化加密算法组合,为加密处理进行准备;
[0058] 步骤710,加密处理,在需要使用多种加密算法时,采用链式加密的方式对数据进行加密处理,得到加密数据包。
[0059] 对于上述安全策略,下面结合图8进行说明,图8示出了根据本发明的实施例的数据加密安全策略的示意图。
[0060] 如图8所示,此时包括三组安全策略,其中包括绝密级802、机密级804和公开级806。对于绝密级802而言,其对应的加密算法组合为加密算法A+加密算法B+加密算法C,对于机密级802而言,其对应的加密算法组合为加密算法L+加密算法M+加密算法N,对于公开级806而言,其对应的加密算法组合为加密算法X。这里的加密算法可能包括多种算法,比如对于绝密级802的加密算法A+加密算法B+加密算法C,并不一定就是采用从加密算法A到加密算法B再到加密算法C的顺序,而是可以采用随机顺序,或是经常改变顺序,从而进一步提高安全性。
[0061] 这里通过对不同安全级别的数据的不同安全策略的选择,可以在保证数据安全性的同时,对于一些终端性能不够强大如移动终端,其本身的运算能力不够强的情况下,对于安全级别较低的数据,若采用相应的安全策略,显然可以提升用户体验。
[0062] 图9示出了根据本发明的实施例的数据传输的示意图。
[0063] 如图9所示,进行数据传输的终端可能采用不同的操作系统,如采用第一操作系统的第一操作系统终端902,采用第二操作系统的第二操作系统终端904和采用第三操作系统的第三操作系统终端906。因此,为了确保不同操作系统下的终端能够顺利完成数据的传输,兼容性问题便很重要。
[0064] 在本发明中,第一操作系统终端902、第二操作系统终端904和第三操作系统终端906通过互联网908连接至服务器910。一方面,第一操作系统终端902、第二操作系统终端904和第三操作系统终端906中采用了全兼容的加密算法库,即其中的加密算法可以兼容各种操作系统,这样就可以保证各个终端在接收到其他终端发送的加密数据包后,可以不受限制地成功解密。同时,通过服务器910的中转,即使不同操作系统下得到的加密数据包的格式不同,也可以通过服务器910根据目标终端采用的操作系统,将接收到的加密数据包进行格式转换,得到对应于目标终端的操作系统的加密数据包。
[0065] 以上结合附图详细说明了本发明的技术方案,考虑到统一的加密解密方法有可能加密强度不够或浪费计算资源,且长时间使用同一种加密算法也有可能给攻击者提供便利,加之对于平衡性能功耗比的考虑,本发明提供了一种数据传输装置和一种数据传输方法,既可以保证数据的安全性,又可以保证加密算法的处理过程适应于需要传输的数据及处理装置。
[0066] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。