本发明涉及数据的安全传输技术领域,具体涉及一种基于安全模块的数据传输系统及方法。
背景技术:
随着科学技术的不断发展,特别是随着互联网技术的飞速发展,人们的生活日益网络化、信息化,客户端往往需要服务器提供大量的数据信息,也需要向服务器提供相关数据,有时甚至需要向服务器提供用户的个人信息,因此,信息传输的安全问题越来越成为众人关注的焦点问题,对于数据的传输加密方案也越来越多,目前对数据的加解密方案通常都是采用固定密钥进行加解密的方式,安全等级较低,一旦密钥被破解,将造成极大危害。
技术实现要素:
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于安全模块的数据传输系统及方法,通过该及系统及方法能够有效提高数据传输的安全。
为实现上述目的,本发明采用的技术方案如下:
一种基于安全模块的数据传输系统,包括数据发送端和数据接收端,所述数据发送端包括:
第一安全模块,用于随机生成分散因子,并根据所述分散因子和其预存的第一密钥采用与数据接收端约定的第一密钥生成算法计算第一过程密钥,将所述分散因子和第一过程密钥发送到第一处理器;
第一处理器,用于根据与数据接收端约定的数据加解密算法,采用所述第一过程密钥将待传输数据加密,得到加密数据;
第一数据传输模块,用于将所述加密数据和分散因子发送到数据接收端;
所述数据接收端包括:
第二数据传输模块,用于接收数据发送端发送的所述加密数据和分散因子;
第二安全模块,用于根据其预存的与所述第一密钥相匹配的第二密钥和接收到的分散因子,采用与所述第一密钥生成算法相匹配的第二密钥生成算法计算第二过程密钥,并将计算出的第二过程密钥发送到第二处理器,
第二处理器,用于根据第二安全模块生成的第二过程密钥和与数据发送端约定的数据加解密算法,将所述加密数据解密,得到数据发送端发送的数据。
进一步,如上所述的一种基于安全模块的数据传输系统,所述分散因子包括真随机数或伪随机数。
进一步,如上所述的一种基于安全模块的数据传输系统,所述第一安全模块和第二安全模块还用于在进行数据传输前,进行数据发送端和数据接收端之间的安全认证;所述安全认证为单向认证或双向认证。
进一步,如上所述的一种基于安全模块的数据传输系统,所述数据发送端和数据接收端基于所述第一密钥和第二密钥完成两者间的安全认证。
进一步,如上所述的一种基于安全模块的数据传输系统,所述数据发送端为客户端,所述数据接收端为服务器端。
本发明实施例中还提供了一种基于安全模块的数据传输方法,包括以下步骤:
(1)数据发送端的第一安全模块随机生成分散因子,并根据所述分散因子和其预存的第一密钥采用与数据接收端约定的第一密钥生成算法计算第一过程密钥;
(2)数据发送端的第一处理器根据与数据接收端约定的数据加解密算法,采用所述第一过程密钥将待传输数据加密,将加密数据和分散因子发送到数据接收端;
(3)数据接收端接收到所述加密数据和分散因子后,数据接收端的第二安全模块根据其预存的与所述第一密钥相匹配的第二密钥和接收到的分散因子,采用与所述第一密钥生成算法相匹配的第二密钥生成算法计算第二过程密钥;
(4)数据接收端的第二处理器根据与数据接收端约定的数据加解密算法,采用第二安全模块计算出的第二过程密钥将所述加密数据解密,得到数据发送端发送的数据。
进一步,如上所述的一种基于安全模块的数据传输方法,所述分散因子包括真随机数或伪随机数。
进一步,如上所述的一种基于安全模块的数据传输方法,该方法还包括:
在进行数据传输前,进行数据发送端和数据接收端之间的安全认证;所述安全认证为单向认证或双向认证。
进一步,如上所述的一种基于安全模块的数据传输方法,所述数据发送端和数据接收端基于所述第一密钥和第二密钥完成两者间的安全认证。
进一步,如上所述的一种基于安全模块的数据传输方法,所述数据发送端为客户端,所述数据接收端为服务器端。
本发明的有益效果在于:本发明所提供的数据传输系统及方法,在处理器进行数据处理的同时,在数据发送端和接收端同时加入安全模块,在数据的每次传输的过程中,由数据发送端动态生成不可预测的过程密钥对数据进行加密,即使某次传输中的过程密钥被破解,也无法获取到全部传输数据,有效提高了数据传输的安全性,该系统及方法尤其适用于语音、视频等大数据量传输应用场景中。
附图说明
图1为本发明具体实施方式中提供的一种基于安全模块的数据传输系统的结构示意图;
图2为本发明具体实施方式中提供的一种基于安全模块的数据传输方法的流程图;
图3为将本发明实施方式中提供的数据传输方法应用于客户端-服务器端的数据传输中的流程图。
具体实施方式
下面结合说明书附图与具体实施方式对本发明做进一步的详细说明。
图1示出了本发明具体实施方式中提供的一种基于安全模块的数据传输系统的结构示意图,该系统包括数据发送端100和数据接收端200。
本实施方式中,所述数据发送端100包括第一处理器101、第一安全模块102和第一数据传输模块103;所述数据接收端200包括第二处理器201、第二安全模块202和第二数据传输模块203。其中:
第一安全模块102,用于随机生成分散因子,并根据所述分散因子和其预存的第一密钥采用与数据接收端约定的第一密钥生成算法计算第一过程密钥,将所述分散因子和第一过程密钥发送到第一处理器;
第一处理器101,用于根据与数据接收端约定的数据加解密算法,采用所述第一过程密钥将待传输数据加密,得到加密数据;
第一数据传输模块103,用于将所述加密数据和分散因子发送到数据接收端;
第二数据传输模块203,用于接收数据发送端发送的所述加密数据和分散因子;
第二安全模块202,用于根据其预存的与所述第一密钥相匹配的第二密钥和接收到的分散因子,采用与所述第一密钥生成算法相匹配的第二密钥生成算法计算第二过程密钥,并将第二过程密钥发送到第二处理器,
第二处理器201,用于根据第二安全模块生成的第二过程密钥和与数据发送端约定的数据加解密算法,将所述加密数据解密,得到数据发送端发送的数据。
本实施方式中,所述数据发送端和数据接收端即需要进行数据传输的双方的具体形式不受限制,如可以是需要进行数据传输的客户端和服务器端,也可以是其它需要进行安全数据传输的两个终端设备之间,且传输数据的双方可以互为数据接收端和数据发送端。第一处理器101和第二处理器201分别为数据发送端和数据接收端的高性能运算单元,为两端的运算核心和控制核心,负责待传输数据的加解密以及上层应用需要的一些运算功能。
本实施方式中,所述第一密钥和第一密钥生成算法、第二密钥和第二密钥生成算法均是预置于第一安全模块102和第二安全模块202中的,其中,第一密钥和第二密钥可以相同、也可以不同,由所选用的密钥生成算法确定。当第一密钥生成算法和第二密钥生成算法为对称算法时,第一密钥和第二密钥相同,如果为非对称算法时,第一密钥和第二密钥则不同。
所述分散因子是指用于参与过程密钥(包括第一过程密钥和第二过程密钥)生成的密钥生成算法的一个输入参数,该参数是由安全模块动态随机生成的,该分散因子可以是真随机数(可用真随机数发生器生成),也可以是伪随机数,例如,可以用时间做为种子,加上一些混淆算法,获得不可预知数。
采用本实施方式所提供的上述数据传输方法,当数据发送端和数据接收端需要进行数据交互时,数据发送端的第一处理器首先会向第一安全模块发送获取第一过程密钥的请求,第一安全模块接收到该请求后,首先生成一用于生成第一过程密钥的随机的分散因子,然后根据该分散因子和预存的用于生成第一过程密钥的第一密钥,采用与数据接收端约定的第一密钥生成算法,得到第一过程密钥,并将第一过程密钥和分散因子发送给第一处理器,第一处理器采用该第一过程密钥将需要传输的数据加密后,将加密数据和分散因子打包发送给数据接收端;数据接收端接收到数据包后,首先获取分散因子,由其第二安全模块计算出第二过程密钥,第二处理器采用该第二过程密钥对加密数据解密,得到数据发送端发送的数据。
采用该数据传输方法,数据发送端和数据接收端每进行一次数据传输,发送端和接收到都分别生成一次过程密钥,如数据接收端得到数据发送端发送的数据后,如果需要向数据发送端返回响应数据时,则需要第二安全模块首先生成一随机分散因子,然后根据分散因子和第二密钥生成一过程密钥,再采用上述同样的方式把响应数据发送到数据发送端,数据发送端收到数据后,根据分散因子和第一密钥再生成一过程密钥用于数据解密,从而保证了一次一秘钥,大大保证了整个数据传输过程的安全性,尤其适用于大数据量传输的多次数据交互过程,即使交互过程的某一次过程密钥被破解,也无法获得整个交互过程的全部数据。
为了进一步保证数据传输的安全性,所述第一安全模块102和第二安全模块202还用于在进行数据传输前,进行数据发送端和数据接收端之间的安全认证;所述安全认证为单向认证或双向认证。本实施方式中,所述数据发送端和数据接收端可以基于上述双方预存的第一密钥和第二密钥完成两者间的安全认证。利用安全模块中存储的第一密钥和第二密钥完成安全认证的具体方式可以根据实际需要选定。在实际应用中,安全模块可以直接采用安全芯片SE来实现。
基于图1中所述的数据传输系统,本实施方式中还提供了一种基于安全模块的数据传输方法,如图2所示,该方法包括以下步骤:
步骤S1:数据发送端的第一安全模块生成用于数据加密的第一过程密钥;
步骤S2:数据发送端采用第一过程密钥将待传输数据进行加密,并将加密数据和分散因子发送到数据接收端;
数据发送端的第一安全模块随机生成分散因子,并根据所述分散因子和其预存的第一密钥采用与数据接收端约定的第一密钥生成算法计算生成第一过程密钥。其中,所述第一密钥生成算法可以根据需要进行选择。所述分散因子包括真随机数或伪随机数。
完成第一过程密钥的计算后,第一处理器根据与数据接收端约定的第一数据加解密算法,采用所述第一过程密钥将待传输数据加密,并将加密数据和分散因子发送到数据接收端。同样,所述第一数据加解密算法可以由数据发送端和数据接收端根据设计需要进行选择。
在实际应用中,为了保证双方通信安全,在进行数据传输前,一般还包括数据发送端和数据接收端之间进行安全认证的步骤,所述安全认证可以是单向认证或双向认证。本实施方式中,数据发送端和数据接收端基于所述第一密钥和第二密钥(步骤S3中所述的第二密钥)完成两者间的安全认证。
所述数据发送端可以为客户端,所述数据接收端可以为服务器端,当然数据发送端和数据接收端可以互换。
步骤S3:数据接收端的第二安全模块根据接收到的分散因子计算用于数据解密的第二过程密钥;
步骤S4:数据接收端采用第二安全模块计算出的第二过程密钥解密所述加密数据,得到数据发送端发送的数据。
数据接收端接收到所述加密数据和分散因子后,数据接收端的第二安全模块根据其预存的与第一密钥相匹配的第二密钥和接收到的分散因子根据与数据发送端约定的与所述第一密钥生成算法相匹配的第二密钥生成算法计算生成第二过程密钥,并计算出的第二过程密钥传给第二处理器,第二处理器根据与数据接收端约定的数据加解密算法,采用第二安全模块计算出的第二过程密钥将所述加密数据解密,得到数据发送端所发送的实际数据信息。
图3示出了将本发明所述的数据传输方法应用于客户端和服务器端之间的数据传输流程图,本实施例中,客户端为数据发送端,服务器端为数据接收端,两者间进行数据安全传输的具体流程如下:
当客户端的上层应用(如摄像头或其它应用)有数据要进行传输时,运算单元(通用处理器)会先从安全模块中获取分散因子和对应的过程密钥,然后处理器用过程密钥按照约定的算法将要传输的数据加密打包,同时,在数据包中包含对应的分散因子,即打包好的数据包括加密后的密文和分散因子,传输模块负责将打包好的数据传输给服务器端。
服务器端收到打包的密文,先获取分散因子,把分散因子传给其安全模块,安全模块根据分散因子,通过存储的密钥和约定的算法,计算出用于解密的过程密钥,并把这个过程密钥返回给处理器,处理器获得过程密钥后,对密文进行解密,解密后的明文再上送给上层应用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。