一种基于安全模块的数据传输系统及方法与流程

文档序号:12278674阅读:330来源:国知局
一种基于安全模块的数据传输系统及方法与流程

本发明涉及数据的安全传输技术领域,具体涉及一种基于安全模块的数据传输系统及方法。



背景技术:

随着科学技术的不断发展,特别是随着互联网技术的飞速发展,人们的生活日益网络化、信息化,客户端往往需要服务器提供大量的数据信息,也需要向服务器提供相关数据,有时甚至需要向服务器提供用户的个人信息,因此,信息传输的安全问题越来越成为众人关注的焦点问题,对于数据的传输加密方案也越来越多,目前对数据的加解密方案通常都是采用固定密钥进行加解密的方式,安全等级较低,一旦密钥被破解,将造成极大危害。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种基于安全模块的数据传输系统及方法,通过该及系统及方法能够有效提高数据传输的安全。

为实现上述目的,本发明采用的技术方案如下:

一种基于安全模块的数据传输系统,包括数据发送端和数据接收端,所述数据发送端包括:

第一安全模块,用于生成数量为第一设定值的、用于数据加密的第一过程密钥,第一过程密钥的生成方式为:第一安全模块随机生成一个分散因子,根据所述分散因子和其预存的第一密钥采用与数据接收端约定的第一密钥生成算法计算第一过程密钥;

第一密钥资源池,用于存储多组加密密钥数据;每组加密密钥数据包括一个第一过程密钥和与其唯一对应的分散因子;

第一处理器,用于从第一密钥资源池中随机获取一组加密密钥数据,根据与数据接收端约定的数据加解密算法,采用获取的加密密钥数据中的第一过程密钥将待传输数据加密,得到加密数据;

第一数据传输模块,用于将获取的加密密钥数据中的分散因子和所述加密数据发送到数据接收端;

所述数据接收端包括:

第二数据传输模块,用于接收数据发送端发送的分散因子和加密数据;

第二安全模块,用于根据其预存的与所述第一密钥相匹配的第二密钥和接收到的分散因子,采用与所述第一密钥生成算法相匹配的第二密钥生成算法计算第二过程密钥;

第二处理器,用于根据与所述数据发送端约定的数据加解密算法,采用第二过程密钥将所述加密数据解密,得到数据发送端发送的数据。

进一步,如上所述的一种基于安全模块的数据传输系统,所述第一数据传输模块包括:

第一分散因子传输单元,用于在第一处理器从第一密钥资源池中获取一组加密密钥数据后,将加密密钥数据中的分散因子发送到数据接收端;

第一密文传输单元,用于将加密数据发送到数据接收端;

所述第二数据传输模块包括:

第二分散因子传输单元,用于接收第一分散因子传输单元传输的分散因子;

第二密文传输单元,用于接收第一密文传输单元发送的加密数据。

进一步,如上所述的一种基于安全模块的数据传输系统,所述第一数据传输模块,还用于在第一安全模块生成数量为第一设定值的第一过程密钥后,将所有第一过程密钥对应的多个分散因子传输到第二数据传输模块;

第二数据传输模块接收到所述多个分散因子后,由第二处理器将多个分散因子发送到第二安全模块;

所述第二安全模块,还用于在接收到所述多个分散因子后,分别生成与所述多个分散因子一一对应的多个第二过程密钥;

所述数据接收端还包括:

第二密钥资源池,用于存储多组解密密钥数据,每组解密密钥数据包括一个第二过程密钥和与其唯一对应的分散因子;

所述第二数据传输单元在接收到数据发送端发送的加密数据和分散因子后,第二处理器根据所述分散因子在第二密钥资源池查找对应的第二过程密钥,并采用查找到的第二过程密钥将加密数据解密。

进一步,如上所述的一种基于安全模块的数据传输系统,所述第一处理器,还用于在从第一密钥资源池中随机获取一组加密密钥数据后,删除第一密钥资源池中的该组加密密钥数据,以及在删除后的第一密钥资源池中的加密密钥数据的组数少于第二设定值时,则向第一安全模块发送第一过程密钥生成指令,使第一密钥资源池中的加密密钥数据组数达到第一设定值。

进一步,如上所述的一种基于安全模块的数据传输系统,所述分散因子包括真随机数或伪随机数。

进一步,如上所述的一种基于安全模块的数据传输系统,所述第一安全模块和第二安全模块还用于在进行数据传输前,进行数据发送端和数据接收端之间的安全认证;所述安全认证为单向认证或双向认证。

进一步,如上所述的一种基于安全模块的数据传输系统,所述数据发送端和数据接收端基于所述第一密钥和第二密钥完成两者间的安全认证。

一种基于安全模块的数据传输方法,包括以下步骤:

(1)数据发送端的第一安全模块生成数量为第一设定值的、用于数据加密的第一过程密钥;

第一过程密钥的生成方式为:第一安全模块随机生成一个分散因子,根据所述分散因子和其预存的第一密钥采用与数据接收端约定的第一密钥生成算法计算第一过程密钥;

(2)将多组加密密钥数据存储于第一密钥资源池中;每组加密密钥数据包括一个第一过程密钥和与其唯一对应的分散因子;

(3)需要进行数据加密时,第一处理器从第一密钥资源池中随机获取一组加密密钥数据,根据与数据接收端约定的数据加解密算法,采用获取的加密密钥数据中的第一过程密钥将待传输数据加密,得到加密数据,将获取的加密密钥数据中的分散因子和加密数据发送到数据接收端;

(4)数据接收端接收到分散因子和加密数据后,第二处理器根据接收到的分散因子获取其第二安全模块生成的第二过程密钥;

第二过程密钥生成方式为:第二安全模块根据其预存的与所述第一密钥相匹配的第二密钥和接收到的分散因子,采用与所述第一密钥生成算法相匹配的第二密钥生成算法计算第二过程密钥;

(5)第二处理器根据与数据发送端约定的数据加解密算法,采用第二安全模块生成的第二过程密钥将加密数据解密,得到数据发送端发送的数据。

进一步,如上所述的一种基于安全模块的数据传输方法,步骤(3)中,第一处理器从第一密钥资源池中随机获取一组加密密钥数据后,在将待传输数据加密的同时,首先将获取的加密密钥数据中的分散因子发送到数据接收端,完成加密后,再将加密数据发送到数据接收端;

步骤(4)中,数据接收端接收到分散因子后,第二安全模块生成第二过程密钥,在接收到加密数据后,直接采用该第二过程密钥将加密数据解密。

进一步,如上所述的一种基于安全模块的数据传输方法,该方法还包括:

数据发送端的第一安全模块在生成数量为第一设定值的用于数据加密的第一过程密钥后,将所有第一过程密钥对应的多个分散因子传输到数据接收端;

数据接收端接收到多个分散因子后,其第二安全模块生成与所述多个分散因子一一对应的多个第二过程密钥,并将多组解密密钥数据存储到其第二密钥资源池中;每组解密密钥数据包括一个第二过程密钥和与其唯一对应的分散因子

数据接收端在数据发送端发送的加密数据和分散因子后,第二处理器从第二密钥资源池中直接获取该分散因子对应的第二过程密钥,并采用第二过程密钥将加密数据解密。

本发明的有益效果在于:本发明所提供的数据传输系统及方法,在处理器进行数据处理的同时,在数据发送端和接收端同时加入安全模块,在数据的每次传输的过程中,都采用不可预测的过程密钥对数据进行加密,即使某次传输中的过程密钥被破解,也无法获取到全部传输数据,有效提高了数据传输的安全性,该系统及方法尤其适用于语音、视频等大数据量传输应用场景中。

附图说明

图1为本发明实施例一中提供的一种基于安全模块的数据传输系统的结构示意图;

图2为本发明实施例二中提供的一种基于安全模块的数据传输系统的结构示意图;

图3为本发明实施例三中提供的一种基于安全模块的数据传输方法的流程图;

图4为本发明实施例四中提供的一种基于安全模块的数据传输方法的流程图;

图5为将实施例四中提供的数据传输方法应用于客户端-服务器端的数据传输中的流程图。

具体实施方式

下面结合说明书附图与具体实施方式对本发明做进一步的详细说明。

实施例一

图1示出了本实施例中提供的一种基于安全模块的数据传输系统的结构示意图,该系统包括数据发送端100和数据接收端200。

本实施方式中,所述数据发送端100包括第一处理器101、第一安全模块102、第一密钥资源池103和第一数据传输模块104,第一安全模块102、第一密钥资源池103和第一数据传输模块103均与第一处理器101连接;所述数据接收端200包括第二处理器201、第二安全模块202和第二数据传输模块204,第二安全模块202和第二数据传输模块204均与第二处理器201连接。其中:

第一安全模块102,用于生成数量为第一设定值的用于数据加密的第一过程密钥,第一过程密钥的生成方式为:第一安全模块随机生成一个分散因子,根据所述分散因子和其预存的第一密钥采用与数据接收端约定的第一密钥生成算法计算第一过程密钥;

第一密钥资源池103,用于存储多组加密密钥数据;每组加密密钥数据包括一个第一过程密钥和与其唯一对应的分散因子;

第一处理器101,用于从第一密钥资源池中随机获取一组加密密钥数据,根据与数据接收端约定的数据加解密算法,采用获取的加密密钥数据中的第一过程密钥将待传输数据加密,得到加密数据;

第一数据传输模块104,用于将获取的加密密钥数据中的分散因子和所述加密数据发送到数据接收端。

第二数据传输模块204,用于接收数据发送端发送的分散因子和加密数据;

第二安全模块202,用于根据其预存的与所述第一密钥相匹配的第二密钥和接收到的分散因子,采用与所述第一密钥生成算法相匹配的第二密钥生成算法计算第二过程密钥;

第二处理器201,用于根据与所述数据发送端约定的数据加解密算法,采用第二过程密钥将所述加密数据解密,得到数据发送端发送的数据。

本实施例中,所述数据发送端和数据接收端即需要进行数据传输的双方的具体形式不受限制,如可以是需要进行数据传输的客户端和服务器端,也可以是其它需要进行安全数据传输的两个终端设备之间,且传输数据的双方可以互为数据接收端和数据发送端。第一处理器101和第二处理器201分别为数据发送端和数据接收端的高性能运算单元,为两端的运算核心和控制核心,负责待传输数据的加解密以及上层应用需要的一些运算功能。

所述第一密钥和第一密钥生成算法、第二密钥和第二密钥生成算法均是预置于第一安全模块102和第二安全模块202中的,其中,第一密钥和第二密钥可以相同、也可以不同,由所选用的密钥生成算法确定。当第一密钥生成算法和第二密钥生成算法为对称算法时,第一密钥和第二密钥相同,如果为非对称算法时,第一密钥和第二密钥则不同。

所述分散因子是指用于参与过程密钥(包括第一过程密钥和第二过程密钥)生成的密钥生成算法的一个输入参数,该参数是由安全模块动态随机生成的,该分散因子可以是真随机数(可用真随机数发生器生成),也可以是伪随机数,例如,可以用时间做为种子,加上一些混淆算法,获得不可预知数。

本实施例所提供的上述数据传输系统,数据发送端的第一安全模块首先实现生成一定数量的第一过程密钥,一个第一过程密钥唯一对应一个随机生成的分散因子,并将每一个第一过程密钥和与其一一对应的分散因子关联存储与第一密钥资源池中,当数据发送端和数据接收端需要进行数据交互时,数据发送端的第一处理器首先会从第一密钥资源池中随机获取一组第一过程密钥和分散因子,并采用随机获取的第一过程密钥将待发送数据加密,得到加密数据,将加密数据和用于加密的第一过程密钥对应的分散因子发送到数据接收端,数据接收端接收到分散因子和加密数据后,首先其第二安全模块计算出第二过程密钥,第二处理器采用该第二过程密钥对加密数据解密,得到数据发送端发送的数据。

采用该数据传输系统,数据发送端和数据接收端每进行一次数据传输,发送端和接收端都分别生成一次过程密钥,从而保证了一次一秘钥,大大保证了整个数据传输过程的安全性,尤其适用于大数据量传输的多次数据交互过程,即使交互过程的某一次过程密钥被破解,也无法获得整个交互过程的全部数据。

在实际应用中,数据交互的双方一般是互为发送端和接收端的,如对于客户端和服务器端,在客户端向服务器端发送数据时,客户端为数据发送端,服务器端为数据接收端,而在服务器端向客户端返回数据时,此时服务器端为数据发送端,客户端为数据接收端。

为了进一步提高数据传输的效率,本实施例中,所述第一数据传输模块104可以包括第一分散因子传输单元和第一密文传输单元。

第一分散因子传输单元,用于在第一处理器从第一密钥资源池中获取一组加密密钥数据后,将加密密钥数据中的分散因子发送到数据接收端;

第一密文传输单元,用于将加密数据发送到数据接收端;

对应的,所述第二数据传输模块204包括:

第二分散因子传输单元,用于接收第一分散因子传输单元传输的分散因子;

第二密文传输单元,用于接收第一密文传输单元发送的加密数据。

采用该方式,在进行数据传输时,第一处理器101在从第一密钥资源池103中随机获取到加密密钥数据后,在采用第一过程密钥将待传输数据加密的同时,将分散因子发送给数据接收端,即先行将分散因子发送到数据接收端,以使数据接收端的第二安全模块能够提前进行第二过程密钥的计算,从而在后序接收到加密数据后,可直接采用已经提前生成的第二过程密钥进行解密,与同时传输加密数据和分散因子的方式相比,可以进一步提高数据传输效率。

为了进一步保证数据传输的安全性,所述第一安全模块102和第二安全模块202还用于在进行数据传输前,进行数据发送端和数据接收端之间的安全认证;所述安全认证为单向认证或双向认证。本实施方式中,所述数据发送端和数据接收端可以基于上述双方预存的第一密钥和第二密钥完成两者间的安全认证。利用安全模块中存储的第一密钥和第二密钥完成安全认证的具体方式可以根据实际需要选定。在实际应用中,安全模块可以直接采用安全芯片SE来实现。

为了提高过程密钥的安全性以及第一密钥资源池103中加密密钥数据的数量,本实施例中,所述第一处理器101,还用于在从第一密钥资源池103中随机获取一组加密密钥数据后,删除第一密钥资源池中的该组加密密钥数据,以及在删除后的第一密钥资源池103中的加密密钥数据的组数少于第二设定值时,则向第一安全模块102发送第一过程密钥生成指令,使第一密钥资源池中的加密密钥数据组数达到第一设定值。

采用该方式,保证了第一密钥资源池中第一过程密钥和分散因子的对数不会少于第二设定值,且每对加密密钥数据只使用一次,有效提高数据处理的安全性。

实施例二

图2示出了本实施例中提供的一种基于安全模块的数据传输系统的结构示意图,由图中可以看出,该实施例与实施例一相比,在数据接收端200中增加了第二密钥资源池203,第二密钥资源池203也与第二处理器201连接。

本实施例中,所述第一数据传输模块104,还用于在第一安全模块102生成数量为第一设定值的第一过程密钥后,将所有第一过程密钥对应的多个(第一设定设定值)分散因子传输到第二数据传输模块204;

第二数据传输模块204接收到所述多个分散因子后,由第二处理器201将多个分散因子发送到第二安全模块202;

所述第二安全模块202,还用于在接收到所述多个分散因子后,分别生成与所述多个分散因子一一对应的多个第二过程密钥;

第二密钥资源池203,用于存储多组解密密钥数据,每组解密密钥数据包括一个第二过程密钥和与其唯一对应的分散因子;

所述第二数据传输单元204在接收到数据发送端发送的加密数据和分散因子后,第二处理器根据所述分散因子在第二密钥资源池直接查找与该分散因子对应的第二过程密钥,并采用查找到的第二过程密钥将加密数据解密。

本实施例中所述的数据传输系统,同时在数据发送端和数据接收端设置了密钥资源池,在数据发送端生成多组加密密钥资源时,也将多个用于生成第一过程密钥的分散因子提前传输到数据接收端,数据接收端也能够提前根据接收到的多个分散因子生成多组解密密钥数据,从而使数据接收端接收到加密数据和一个分散因子后,能够直接从第二密钥资源池中直接查找到与该分散因子对应的第二过程密钥,实现快速解密。

本实施例中,为了进一步提高数据传输的安全性,第一处理器101在从第一密钥资源池103中随机获取一组加密密钥数据后,可以删除第一密钥资源池中的该组加密密钥数据,对应的,第二处理器102从第二密钥资源池203中查找到需要的第二过程密钥后,同样删除第二密钥池中对应的该组解密密钥数据。

实施例三

基于图1中所述的数据传输系统,本实施方式中还提供了一种基于安全模块的数据传输方法,如图3所示,该方法包括以下步骤:

步骤S301:数据发送端的第一安全模块生成数量为第一设定值的、用于数据加密的第一过程密钥;

步骤S302:将多组加密密钥数据存储于第一密钥资源池中;每组加密密钥数据包括一个第一过程密钥和与其唯一对应的分散因子;

步骤S301和步骤S302为在数据传输前,在数据发送端中提前完成的工作,即第一过程密钥的生成及存储。

本实施例中,一个第一过程密钥的生成方式为:第一安全模块随机生成一个分散因子,根据所述分散因子和其预存的第一密钥采用与数据接收端约定的第一密钥生成算法计算第一过程密钥。

采用上述第一过程密钥生成方式,按照设定的第一设定值生成多个第一过程密钥,每个第一过程密钥唯一对应一个分散因子,并将每个第一过程密钥和与其唯一对应的分散因子关联存储于第一密钥资源池中。

步骤S303:第一处理器从第一密钥资源池中随机获取一组加密密钥数据,采用获取的第一过程密钥将待传输数据加密,将加密数据和获取的分散因子发送到数据接收端;

数据发送端需要向数据接收端发送数据时,数据发送端的第一处理器首先从其第一密钥资源池中获取一组加密密钥数据,根据与数据接收端约定的数据加解密算法,采用获取的加密密钥数据中的第一过程密钥将待传输数据加密,得到加密数据,将获取的加密密钥数据中的分散因子和加密数据发送到数据接收端。

步骤S304:数据接收端接收到分散因子和加密数据后,其第二安全模块根据接收到的分散因子生成第二过程密钥;

步骤S305:第二处理器采用第二安全模块生成的第二过程密钥将加密数据解密,得到数据发送端发送的数据。

数据接收端接收到发送端发送的分散因子和加密数据后,其第二处理器首先将分散因子发送给第二安全模块,向第二安全模块获取第二过程密钥,第二过程密钥根据分散因子生成第二过程密钥并返回该第二处理器,之后,第二处理器根据与数据发送端约定的数据加解密算法,采用第二安全模块生成的第二过程密钥将加密数据解密,得到数据发送端发送的数据。

本实施例中,第二安全模块计算第二过程密钥的方式为:第二安全模块根据其预存的与所述第一密钥相匹配的第二密钥和接收到的分散因子,采用与所述第一密钥生成算法相匹配的第二密钥生成算法计算第二过程密钥。

本实施例中,在步骤S303中,第一处理器从第一密钥资源池中随机获取一组加密密钥数据后,在将待传输数据加密的同时,首先将获取的加密密钥数据中的分散因子发送到数据接收端,以使第二安全模块能够提前计算第二过程密钥,完成加密后,再将加密数据发送到数据接收端;步骤S304中,数据接收端接收到分散因子后,第二安全模块先生成第二过程密钥,在后续接收到加密数据后,直接采用该第二过程密钥将加密数据解密即可。

实施例四

基于图2中所述的数据传输系统,本实施方式中还提供了一种基于安全模块的数据传输方法,如图4所示,该方法包括以下步骤:

步骤S401:数据发送端的第一安全模块生成数量为第一设定值的、用于数据加密的第一过程密钥,并将多组加密密钥数据存储于第一密钥资源池中;每组加密密钥数据包括一个第一过程密钥和与其唯一对应的分散因子;

步骤S402:数据发送端将所有第一过程密钥对应的多个分散因子传输到数据接收端,数据接收端的第二安全模块根据接收到的多个分散因子生成与所述多个分散因子一一对应的多个第二过程密钥,并将多组解密密钥数据存储到其第二密钥资源池中;每组解密密钥数据包括一个第二过程密钥和与其唯一对应的分散因子;

步骤S403:第一处理器从第一密钥资源池中随机获取一组加密密钥数据,采用获取的第一过程密钥将待传输数据加密,将加密数据和获取的分散因子发送到数据接收端;

步骤S404:数据接收端接收到分散因子和加密数据后,第二处理器从第二密钥资源池中查找与接收到的分散因子相对应的第二过程密钥,采用查找到的第二过程密钥将加密数据解密,得到数据发送端发送的数据。

图5示出了将本发明实施例四中所述的数据传输方法应用于客户端和服务器端之间的数据传输流程图,本实施例中,客户端为数据发送端,服务器端为数据接收端。

在客户端与服务器端进行数据传输前,客户端的安全模块首先生成多组加密密钥数据并存储在其密钥资源池中,客户端将其用于生成多个第一过程密钥的多个分散因子发送都服务器端,服务器端的安全模块根据接收到多个分散因子生成对应的多个第二过程密钥,并将解密密钥数据存储与其密钥资源池中。

客户端与服务器端进行数据传输时,具体流程为:当客户端的上层应用(如摄像头或其它应用)有数据要进行传输时,其运算单元(处理器)会首先从第一密钥资源池中随机获取一组加密密钥数据,记为第一过程密钥A和分散因子B,然后处理器用过程密钥A按照约定的算法将要传输的数据加密打包,同时,在数据包中包含对应的分散因子B,即打包好的数据包括加密后的密文和分散因子B,传输模块负责将打包好的数据传输给服务器端。

服务器端收到打包的密文,先获取分散因子B,然后从第二密钥资源池中查找到与该分散因子B唯一对应的第二过程密钥C(C与B可能相同,也可能不同,由预置的双方约定的密钥生成算法决定),然后采用该第二过程密钥C对密文进行解密,解密后的明文再上送给上层应用。

第一密钥资源池和第二密钥资源池中的数据完成一次调用后,即将资源池中对应的数据删除,保证密钥数据不重复应用。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。

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