发明内容
本申请提供数据传输方法、装置及系统,以解决现有技术中信息安全性问题、以及加解密耗费时间长的问题。
根据本申请实施例的第一方面,提供一种数据传输方法,所述方法应用于客户端中,包括:
生成包括第一公钥和第一私钥的非对称密钥对,向服务端发送携带有所述第一公钥的数据请求;
接收所述服务端发送的密文和第二公钥,所述第二公钥是服务端获取的非对称密钥对中的公钥,该服务端获取的非对称密钥对中还包括第二私钥,所述密文是利用共享密钥将用于生成离线付款码的种子参数加密后的信息;该共享密钥是根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成的密钥;
根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述种子参数;
其中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。
根据本申请实施例的第二方面,提供一种数据传输方法,所述方法应用于服务端中,包括:
接收客户端发送的携带有第一公钥的数据请求,所述数据请求用于请求服务端返回用于生成离线付款码的种子参数,所述第一公钥是所述客户端生成的非对称密钥对中的公钥,该客户端生成的非对称密钥对中还包括第一私钥;
获取包括第二公钥和第二私钥的非对称密钥对,并根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成共享密钥;
利用所述共享密钥加密所述数据请求对应的种子参数,并将加密得到的密文和所述第二公钥发送至所述客户端,以便所述客户端根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述种子参数;
其中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。
根据本申请实施例的第三方面,提供一种数据传输方法,所述方法包括:
数据请求端生成包括第一公钥和第一私钥的非对称密钥对,向数据提供端发送携带有所述第一公钥的数据请求;
所述数据提供端获取包括第二公钥和第二私钥的非对称密钥对,并根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成共享密钥;
所述数据提供端利用所述共享密钥加密所述数据请求对应的目标数据,并将加密得到的密文和所述第二公钥发送至所述数据请求端;
所述数据请求端根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述目标数据;
其中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。
根据本申请实施例的第四方面,提供一种数据传输装置,所述装置包括:
密钥生成模块,用于生成包括第一公钥和第一私钥的非对称密钥对;
请求发送模块,用于向服务端发送携带有所述第一公钥的数据请求;
信息接收模块,用于接收所述服务端发送的密文和第二公钥,所述第二公钥是服务端获取的非对称密钥对中的公钥,该服务端获取的非对称密钥对中还包括第二私钥,所述密文是利用共享密钥将用于生成离线付款码的种子参数加密后的信息;该共享密钥是根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成的密钥;
共享密钥生成模块,用于根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥;
信息解密模块,用于利用所述共享密钥对所述密文进行解密,得到所述种子参数;
其中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。
根据本申请实施例的第五方面,提供一种数据传输装置,所述装置包括:
请求接收模块,用于接收客户端发送的携带有第一公钥的数据请求,所述数据请求用于请求服务端返回用于生成离线付款码的种子参数,所述第一公钥是所述客户端生成的非对称密钥对中的公钥,该客户端生成的非对称密钥对中还包括第一私钥;
密钥获取模块,用于获取包括第二公钥和第二私钥的非对称密钥对;
共享密钥生成模块,用于根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成共享密钥;
信息加密模块,用于利用所述共享密钥加密所述数据请求对应的种子参数;
信息发送模块,用于将加密得到的密文和所述第二公钥发送至所述客户端,以便所述客户端根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述种子参数;
其中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。
根据本申请实施例的第六方面,提供一种数据传输系统,所述系统包括数据请求端装置和数据提供端装置;
所述数据请求端装置生成包括第一公钥和第一私钥的非对称密钥对,向数据提供端装置发送携带有所述第一公钥的数据请求;
所述数据提供端装置获取包括第二公钥和第二私钥的非对称密钥对,并根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成共享密钥;
所述数据提供端装置利用所述共享密钥加密所述数据请求对应的目标数据,并将加密得到的密文和所述第二公钥发送至所述数据请求端装置;
所述数据请求端装置根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述目标数据;
其中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。
根据本申请实施例的第七方面,提供一种数据传输方法,所述方法包括:
数据请求端生成第一对称密钥,向数据提供端发送携带有所述第一对称密钥的数据请求;
所述数据提供端获取第二对称密钥,并根据所述第一对称密钥和所述第二对称密钥,采用预设的密钥协商算法生成共享密钥,所述第二对称密钥与所述第一对称密钥不同;
所述数据提供端利用所述共享密钥加密所述数据请求对应的目标数据,并将加密得到的密文和所述第二对称密钥发送至所述数据请求端;
所述数据请求端根据所述第一对称密钥和所述第二对称密钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述目标数据。
根据本申请实施例的第八方面,提供一种数据传输系统,所述系统包括数据请求端装置和数据提供端装置;
所述数据请求端装置生成第一对称密钥,向数据提供端装置发送携带有所述第一对称密钥的数据请求;
所述数据提供端装置获取第二对称密钥,并根据所述第一对称密钥和所述第二对称密钥,采用预设的密钥协商算法生成共享密钥,所述第二对称密钥与所述第一对称密钥不同;
所述数据提供端装置利用所述共享密钥加密所述数据请求对应的目标数据,并将加密得到的密文和所述第二对称密钥发送至所述数据请求端装置;
所述数据请求端装置根据所述第一对称密钥和所述第二对称密钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述目标数据。
应用本申请实施例数据传输方法、装置及系统时,可以通过数据请求端生成包括第一公钥和第一私钥的非对称密钥对,向数据提供端发送携带有第一公钥的数据请求,通过数据提供端获取包括第二公钥和第二私钥的非对称密钥对,并根据第二私钥和第一公钥,采用预设的密钥协商算法生成共享密钥,然后利用共享密钥加密数据请求对应的目标数据,最后将加密得到的密文和第二公钥传输至数据请求端,数据请求端根据第一私钥和第二公钥,采用相同的密钥协商算法生成共享密钥,由于根据第二私钥和第一公钥采用预设的密钥协商算法生成的共享密钥、与根据第一私钥和第二公钥采用密钥协商算法生成的共享密钥相同,因此数据提供端可以利用共享密钥加密,数据请求端可以利用共享密钥解密。由于加密目标数据和解密目标数据的密钥相同,因此可以采用对称加解密算法对数据进行加解密。由于对称加密算法往往是通过移位等手段进行加密,而非对称加密算法是通过搜索大素数等方式进行加密,可见对称加密算法的加密过程比非对称加密算法的加密过程简单,因此本实施例可以避免复杂的非对称加解密算法导致的加解密时间长的缺陷,提高了加解密的效率。又由于整个传输过程中都没有暴露完整的密钥,即使黑客劫持到公钥也没有意义,从而保证数据在整个传输过程中的安全性。
应用本申请实施例数据传输方法、装置及系统时,可以通过数据请求端获得第一对称密钥,并将携带有第一对称密钥的数据请求发送至数据提供端,通过数据提供端获取第二对称密钥,并根据第一对称密钥和第二对称密钥,采用预设的密钥协商算法生成共享密钥,并利用该共享密钥加密数据请求对应的目标数据,最后将加密得到的密文以及第二对称密钥传输至数据请求端,数据请求端根据第一对称密钥和第二对称密钥,采用相同的密钥协商算法生成共享密钥,由于数据提供端和数据请求端的密钥协商算法相同,因此数据提供端和数据请求端生成的共享密钥相同,数据请求端可以通过生成的共享密钥对密文进行解密,从而获得目标数据。可见,由于共享密钥分别与第一对称密钥和第二对称密钥都不相同,即使黑客劫持到对称密钥也不知道本申请采用了何种密钥协商算法,因此无法对密文进行解密,从而保证数据在整个传输过程中的安全性。另外,由于加密目标数据和解密目标数据的共享密钥相同,因此采用对称密钥加解密算法对数据进行加解密,避免复杂的非对称加解密算法导致的加解密时间长,从而提高了加解密的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
人们越来越重视数据的安全性,尤其是数据在传输过程中的安全性。如图1A所示,图1A为本申请一示例性实施例提供的一种数据传输的应用场景示意图,在该示意图中,不同客户端设备与服务端设备之间可以进行数据传输。例如,客户端设备向服务端设备发送数据请求,服务端设备根据数据请求返回相应的目标数据。在传输过程中,黑客可能截取传输中的目标数据,从而给用户带来损失。
为了保证数据在传输过程中的安全性,可以在所有客户端设备和服务端设备分别预置一个相同的密钥,服务端设备可以利用密钥将待传输的信息进行加密,并将密文传输至客户端设备,客户端设备利用密钥对密文进行解密。然而,由于所有客户端设备和服务端设备共享同一个密钥,如果某个客户端设备或服务端设备的密钥泄露,则所有客户端设备和服务端设备都会存在安全风险。为了避免这种情况,另一种相关技术中,客户端设备可以生成一对非对称密钥,将私钥保存,并将公钥上传至服务端设备,服务端设备利用公钥将需要传输的信息进行加密,并将密文传输至客户端设备,客户端设备利用私钥对密文进行解密。由于非对称密钥算法每次计算采用不同的随机数,所以每次计算生成的非对称密钥对不同,从而不同客户端生成的非对称密钥对也不同,避免了由于某个客户端设备或服务端设备的密钥泄露,导致所有客户端设备和服务端设备存在安全风险的问题,同时,又由于密文只有公钥对应的私钥才能解密,因此在传输公钥时即使公钥被截取,也无法通过公钥解密密文,保证了信息的安全性,然而,由于非对称密钥需要使用复杂的加密算法进行加密,通过复杂的解密算法进行解密,加解密消耗的时间长。
为了避免现有技术中信息安全性问题、以及加解密耗费时间长的问题,本申请提供一种数据传输方法,如图1B所示,图1B为本申请数据传输方法的一个实施例流程图,该方法可以包括以下步骤101至步骤108:
在步骤101中,数据请求端生成包括第一公钥和第一私钥的非对称密钥对。
在步骤102中,数据请求端向数据提供端发送携带有所述第一公钥的数据请求。
在步骤103中,数据提供端获取包括第二公钥和第二私钥的非对称密钥对。
在步骤104中,数据提供端根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成共享密钥。
在步骤105中,数据提供端利用所述共享密钥加密所述数据请求对应的目标数据。
在步骤106中,数据提供端将加密得到的密文和所述第二公钥发送至所述数据请求端。
在步骤107中,数据请求端根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥。
在步骤108中,数据请求端利用所述共享密钥对所述密文进行解密,得到所述目标数据。
其中,数据请求端是请求数据的一端,数据提供端是提供数据的一端。在一个例子中,数据请求端可以是客户端,数据提供端可以是服务端,客户端向服务端请求返回目标数据。以目标数据为用于生成离线付款码的种子参数为例,其中,数据请求可以为开通离线支付的请求,数据请求端为客户端,数据提供端为服务端。客户端向服务端发送开通离线支付的请求,服务端根据请求向客户端返回种子参数。在另一个例子中,服务端也可以向客户端请求数据,则数据请求端可以是服务端,数据提供端可以是客户端,对此不做限定。
由上述实施例可见,可以通过数据请求端生成包括第一公钥和第一私钥的非对称密钥对,向数据提供端发送携带有第一公钥的数据请求,通过数据提供端获取包括第二公钥和第二私钥的非对称密钥对,并根据第二私钥和第一公钥,采用预设的密钥协商算法生成共享密钥,然后利用共享密钥加密数据请求对应的目标数据,最后将加密得到的密文和第二公钥传输至数据请求端,数据请求端根据第一私钥和第二公钥,采用相同的密钥协商算法生成共享密钥,由于根据第二私钥和第一公钥采用预设的密钥协商算法生成的共享密钥、与根据第一私钥和第二公钥采用密钥协商算法生成的共享密钥相同,因此数据提供端可以利用共享密钥加密,数据请求端可以利用共享密钥解密。由于加密目标数据和解密目标数据的密钥相同,因此可以采用对称加解密算法对数据进行加解密。由于对称加密算法往往是通过移位等手段进行加密,而非对称加密算法是通过搜索大素数等方式进行加密,可见对称加密算法的加密过程比非对称加密算法的加密过程简单,因此本实施例可以避免复杂的非对称加解密算法导致的加解密时间长的缺陷,提高了加解密的效率。又由于每次采用不同的随机数,所以每次生成的非对称密钥对不同,从而不同客户端生成的非对称密钥对也不同,避免了由于某个客户端设备或服务端设备的密钥泄露,导致所有客户端设备和服务端设备存在安全风险的问题,同时,由于整个传输过程中都没有暴露完整的密钥,即使黑客劫持到公钥也没有意义,从而保证数据在整个传输过程中的安全性。
其中,包括第一公钥和第一私钥的非对称密钥对的生成时间可以不作具体限定。例如,非对称密钥对可以在每次在发送数据请求前生成。又如,非对称密钥对可以不是在发送数据请求前生成,而是在其他条件满足时生成,以便在要发送数据请求时获取已生成的非对称密钥对。如,可以是每间隔设定时间生成一对非对称密钥对,每次新生成的非对称密钥对替换上一次生成的非对称密钥对。
在一个例子中,第一公钥和第一私钥可以是利用密钥生成算法生成的非对称密钥对。在发送数据请求前,数据请求端每次利用密钥生成算法生成包括第一公钥和第一私钥的非对称密钥对,由于非对称密钥算法每次生成的非对称密钥对一般情况下不相同,则可以避免由于固定存储的密钥对被泄露,导致后续所有利用密钥对加密的信息不安全的问题。
在数据请求端获得第一公钥和第一私钥后,可以将携带有第一公钥的数据请求发送至数据提供端。其中,数据请求是用来请求目标数据的请求。
在一个例子中,数据请求端可以直接将第一公钥携带在数据请求中,从而提高发送数据请求的速度。
在另一个例子中,所述向数据提供端发送携带有所述第一公钥的数据请求,包括:
所述数据请求端利用请求端证书中的私钥对所述第一公钥进行签名,获得第一签名信息,所述请求端证书是指定机构颁发给所述数据请求端的证书。
所述数据请求端将携带有所述第一公钥和所述第一签名信息的数据请求发送至数据提供端。
所述方法还包括:所述数据提供端根据所述请求端证书中的公钥和所述第一公钥,对所述第一签名信息进行验签,验签通过后所述数据提供端向所述数据请求端发送所述密文和所述第二公钥。
其中,指定机构一般是比较权威的能够颁发证书的机构。指定机构颁发给数据请求端的证书中至少包括私钥和公钥,即请求端证书中包括私钥和公钥。
作为其中一种签名方法,数据请求端可以利用哈希算法对第一公钥进行哈希运算,获得第一信息摘要,并利用请求端证书中的私钥对第一信息摘要进行加密,获得第一签名信息,然后根据第一签名信息生成携带有所述第一公钥和所述第一签名信息的数据请求,并将数据请求发送至数据提供端。
数据提供端在接收到数据请求后,数据提供端可以根据请求端证书中的公钥和所述第一公钥,对所述第一签名信息进行验签,验签通过后向所述数据提供端发送所述密文和所述第二公钥。
其中,关于数据提供端获得请求端证书中的公钥的方式,可以是数据请求端预先广播至数据提供端,也可以是数据请求端在发送数据请求时发送给数据提供端。
作为其中一种验签方法,数据提供端可以利用哈希算法对接收到的第一公钥进行哈希运算,获得第二信息摘要,并利用请求端证书中的公钥对第一签名信息进行解密,获得第一信息摘要,验证第一信息摘要和第二信息摘要是否一致,若一致,则表示验签通过,只有验签通过数据提供端才能执行向数据请求端发送密文和第二公钥的操作。
由上述实施例可见,通过对第一公钥进行签名、以及对第一签名信息进行验签,在验签通过时,可以保证第一公钥没有被篡改,同时通过请求端证书确保数据请求端是经过权威机构认证的具有安全性的一端,从而保证共享密钥的协商过程的安全性。
数据提供端在接收到数据请求后,可以获取包括第二公钥和第二私钥的非对称密钥对。其中,所述第二公钥和第二私钥可以是利用所述密钥生成算法生成的密钥对,可见,第一公钥和第一私钥构成的非对称密钥对、以及第二公钥和第二私钥构成的非对称密钥对是由相同的密钥生成算法生成的。由于密钥生成算法每次计算采用不同的随机数,所以每次计算生成的非对称密钥对几乎不同,则数据请求端生成的非对称密钥对和数据提供端生成的非对称密钥对一般情况下不同。
包括第二公钥和第二私钥的非对称密钥对的生成时间可以不作具体限定。例如,非对称密钥对可以在每次接收到数据请求时生成。又如,非对称密钥对可以不是在接收到数据请求时生成,而是在其他条件满足时生成,以便在接收到数据请求时获取已生成的非对称密钥对。如,可以是每间隔设定时间生成一对非对称密钥对,每次新生成的非对称密钥对替换上一次生成的非对称密钥对。
在一个例子中,在接收到数据请求时,数据提供端每次利用密钥生成算法生成包括第二公钥和第二私钥的非对称密钥对,由于非对称密钥算法每次生成的非对称密钥对一般情况下不相同,则可以避免由于固定存储的密钥对被泄露,导致后续利用密钥对加密的信息不安全的问题。
数据提供端获取包括第二公钥和第二私钥的非对称密钥对后,可以根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成共享密钥。后续数据请求端会根据第一私钥和所述第二公钥,采用该密钥协商算法生成共享密钥。
密钥协商算法又可以称为密钥交换算法,例如,可以是ECDH算法。其中,ECDH是基于ECC(Elliptic Curve Cryptosystems,椭圆曲线密码体制)的DH(Diffie-Hellman)密钥交换算法。从而实现双方在不共享任何秘密的情况下协商出一个共同的密钥。
本实施例中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。作为其中一种实现方式,数据提供端和数据请求端采用的密钥协商算法相同,数据提供端和数据请求端采用的密钥生成算法也相同,并且所述密钥协商算法与所述密钥生成算法满足:针对利用所述密钥生成算法生成的任意两个非对称密钥对,选择其中任一非对称密钥对中的公钥以及另一非对称密钥对中的私钥,利用所述密钥协商算法得到的协商结果相同。
可见,由于第一公钥往往不等于第二公钥,第一私钥往往不等于第二私钥,通过第一公钥无法推导第一私钥,通过第二公钥无法推导第二私钥,同时第一私钥和第二公钥协商出的共享密钥,与第二私钥和第一公钥协商出的共享密钥相同,实现整个传输过程中没有暴露完整的密钥,保证数据在整个传输过程中的安全性。同时,由于加密目标数据和解密目标数据的密钥相同,因此采用对称加解密算法对数据进行加解密,避免复杂的非对称加解密算法导致的加解密时间长,从而提高了加解密的效率。
在数据提供端生成共享密钥后,数据提供端可以利用所述共享密钥加密所述数据请求对应的目标数据,并将加密得到的密文和所述第二公钥发送至所述数据请求端。
在一个例子中,数据提供端可以直接将第二公钥发送至数据请求端,提高发送效率。
在另一个例子中,所述方法还包括:
所述数据提供端利用提供端证书中的私钥对所述第二公钥进行签名,获得第二签名信息,所述提供端证书是指定机构颁发给所述数据提供端的证书。
所述数据提供端将加密得到的密文和所述第二公钥发送至所述数据请求端时,还将所述第二签名信息发送至所述数据请求端。
所述数据请求端根据所述提供端证书中的公钥和所述第二公钥,对所述第二签名信息进行验签,验签通过后,所述数据请求端对所述密文进行解密。
其中,指定机构可以是能够颁发证书的机构。指定机构颁发给数据提供端的证书中至少包括私钥和公钥,即提供端证书包括私钥和公钥。
作为其中一种签名方法,数据提供端可以利用哈希算法对第二公钥进行哈希运算,获得第三信息摘要,并利用提供端证书中的私钥对第三信息摘要进行加密,获得第二签名信息,然后将密文、第二公钥、第二签名信息发送至所述数据请求端。
所述数据请求端根据所述提供端证书中的公钥和所述第二公钥,对所述第二签名信息进行验签,验签通过后,所述数据请求端对所述密文进行解密。
其中,关于数据请求端获得提供端证书中公钥的方式,可以是数据提供端预先广播至数据请求端,也可以是数据提供端在发送密文和第二公钥时发送给数据请求端。
作为其中一种验签方法,数据请求端可以利用哈希算法对接收到的第二公钥进行哈希运算,获得第四信息摘要,并利用提供端证书中的公钥对第二签名信息进行解密,获得第三信息摘要,验证第三信息摘要和第四信息摘要是否一致,若一致,则表示验签通过,只有验签通过时数据请求端才执行对密文进行解密的操作。
由上述实施例可见,通过对第二公钥进行签名、以及对第二签名信息进行验签,在验签通过时,可以保证第二公钥没有被篡改,同时通过提供端证书确保数据提供端是经过权威机构认证的具有安全性的一端,从而保证共享密钥的协商过程的安全性。
如图2所示,图2为本申请数据传输方法的另一个实施例流程图,该实施例将数据传输方法应用在传输种子参数上,所述方法应用于客户端中,可以包括以下步骤201至步骤203:
在步骤201中,生成包括第一公钥和第一私钥的非对称密钥对,向服务端发送携带有所述第一公钥的数据请求。
其中,包括第一公钥和第一私钥的非对称密钥对的生成时间可以不作具体限定。例如,非对称密钥对可以在每次在发送数据请求前生成。又如,非对称密钥对可以不是在发送数据请求前生成,而是在其他条件满足时生成,以便在要发送数据请求时获取已生成的非对称密钥对。如,可以是每间隔设定时间生成一对非对称密钥对,每次新生成的非对称密钥对替换上一次生成的非对称密钥对。
在一个例子中,第一公钥和第一私钥可以是利用密钥生成算法生成的非对称密钥对。在发送数据请求前,客户端每次利用密钥生成算法生成包括第一公钥和第一私钥的非对称密钥对,由于非对称密钥算法每次生成的非对称密钥对一般情况下不相同,则可以避免由于固定存储的密钥对被泄露,导致后续所有利用密钥对加密的信息不安全的问题。
在获得第一公钥和第一私钥后,可以将携带有第一公钥的数据请求发送至服务端。其中,所述数据请求用于请求服务端返回用于生成离线付款码的种子参数。
在一个例子中,可以直接将第一公钥携带在数据请求中,从而提高发送数据请求的速度。
在另一个例子中,所述向服务端发送携带有所述第一公钥的数据请求,包括:
利用客户端证书中的私钥对所述第一公钥进行签名,获得第一签名信息,所述客户端证书是指定机构颁发给所述客户端的证书。
向服务端发送携带有所述第一公钥和所述第一签名信息的数据请求,以便所述服务端利用所述客户端证书中的公钥和所述第一公钥对所述第一签名信息进行验签,验签通过后向所述客户端发送所述密文和所述第二公钥。
其中,指定机构可以是能够颁发证书的机构。指定机构颁发给客户端的证书中至少包括私钥和公钥,即客户端证书中包括私钥和公钥。关于服务端获得客户端证书中的公钥的方式,可以是客户端预先广播至服务端,也可以是客户端在发送数据请求时发送给服务端。
本实施例可以采用客户端证书中的私钥对第一公钥进行签名,例如,客户端可以利用哈希算法对第一公钥进行哈希运算,获得第一信息摘要,并利用客户端证书中的私钥对第一信息摘要进行加密,获得第一签名信息,然后将携带有所述第一公钥和所述第一签名信息的数据请求发送至数据提供端。
由上述实施例可见,通过对第一公钥进行签名,以便服务端对第一签名信息进行验签,在验签通过时,可以保证第一公钥没有被篡改,同时通过客户端证书确保客户端是经过权威机构认证的具有安全性的一端,从而保证共享密钥的协商过程的安全性。
在步骤202中,接收所述服务端发送的密文和第二公钥,所述第二公钥是服务端获取的非对称密钥对中的公钥,该服务端获取的非对称密钥对中还包括第二私钥,所述密文是利用共享密钥将用于生成离线付款码的种子参数加密后的信息;该共享密钥是根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成的密钥。在步骤203中,根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述种子参数。
其中,密钥协商算法又可以称为密钥交换算法,例如,可以是ECDH算法。其中,ECDH是基于ECC(Elliptic Curve Cryptosystems,椭圆曲线密码体制)的DH(Diffie-Hellman)密钥交换算法。从而实现双方在不共享任何秘密的情况下协商出一个共同的密钥。
本实施例中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。作为其中一种实现方式,客户端和服务端采用的密钥协商算法相同,客户端和服务端采用的密钥生成算法也相同,并且所述密钥协商算法与所述密钥生成算法满足:针对利用所述密钥生成算法生成的任意两个非对称密钥对,选择其中任一非对称密钥对中的公钥以及另一非对称密钥对中的私钥,利用所述密钥协商算法得到的协商结果相同。
可见,由于第一公钥往往不等于第二公钥,第一私钥往往不等于第二私钥,通过第一公钥无法推导第一私钥,通过第二公钥无法推导第二私钥,同时第一私钥和第二公钥协商出的共享密钥,与第二私钥和第一公钥协商出的共享密钥相同,实现整个传输过程中没有暴露完整的密钥,保证种子参数在整个传输过程中的安全性。另外,由于加密种子参数和解密种子参数的密钥相同,因此采用对称加解密算法对种子参数进行加解密,避免复杂的非对称加解密算法导致的加解密时间长,从而提高了加解密的效率。
在一个可选的实现方式中,客户端可以位于电子设备中,特别是位于可穿戴设备中。由于可穿戴设备本身配置较低,将本方案应用在可穿戴设备中,对称加解密算法不需要耗费太多资源,保证传输安全性的同时,大大提高性能,加快整个传输过程的效率。进一步的,可穿戴设备可以包括智能手环,通过智能手环实现本实施例,既可以保证种子参数的传输安全性,又可以保证整个传输过程的效率。
在一个例子中,可以通过安全元件(Secure Element,SE)执行本实施例方法,从而使非对称密钥的生成、共享密钥的生成、密文的解密等均在安全元件中执行,进一步的,还可以将种子参数存储在安全元件中,由于安全元件具有防破解的功能,可以让种子参数达到非常高的安全级别。
进一步的,可以将种子参数存储在安全元件中,同时还可以设置安全元件的访问权限,通过指纹识别、脉搏识别、脸部识别等验证方式控制付款码的生成,从而让整个付款码达到非常高的安全级别。
如图3所示,图3为本申请数据传输方法的另一个实施例流程图,该实施例将数据传输方法应用在传输种子参数上,所述方法应用于服务端中,可以包括以下步骤301至步骤303:
在步骤301中,接收客户端发送的携带有第一公钥的数据请求,所述数据请求用于请求服务端返回用于生成离线付款码的种子参数,所述第一公钥是所述客户端生成的非对称密钥对中的公钥,该客户端生成的非对称密钥对中还包括第一私钥。
其中,接收数据请求时,如果数据请求仅携带有第一公钥,可以直接执行步骤302;如果数据请求中携带有第一公钥和第一签名信息,则根据客户端证书中的公钥和所述第一公钥,对所述第一签名信息进行验签,验签通过后才执行步骤302。
其中,关于服务端获得客户端证书中的公钥的方式,可以是客户端预先广播至服务端,也可以是客户端在发送数据请求时发送给服务端。
作为其中一种验签方法,服务端可以利用哈希算法对接收到的第一公钥进行哈希运算,获得第二信息摘要,并利用客户端证书中的公钥对第一签名信息进行解密,获得第一信息摘要,验证第一信息摘要和第二信息摘要是否一致,若一致,则表示验签通过,只有验签通过后,服务端后续才向客户端返回密文和第二密钥。
在步骤302中,获取包括第二公钥和第二私钥的非对称密钥对,并根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成共享密钥。
在步骤303中,利用所述共享密钥加密所述数据请求对应的种子参数,并将加密得到的密文和所述第二公钥发送至所述客户端,以便所述客户端根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述种子参数。
其中,包括第二公钥和第二私钥的非对称密钥对的生成时间可以不作具体限定。例如,非对称密钥对可以在每次接收到数据请求时生成。又如,非对称密钥对可以不是在接收到数据请求时生成,而是在其他条件满足时生成,以便在接收到数据请求时获取已生成的非对称密钥对。如,可以是每间隔设定时间生成一对非对称密钥对,每次新生成的非对称密钥对替换上一次生成的非对称密钥对。
在一个例子中,所述第二公钥和第二私钥可以是利用所述密钥生成算法生成的密钥对。例如,在接收到数据请求时,服务端每次利用密钥生成算法生成包括第二公钥和第二私钥的非对称密钥对,由于非对称密钥算法每次生成的非对称密钥对一般情况下不相同,则可以避免由于固定存储的密钥对被泄露,导致后续利用密钥对加密的信息不安全的问题。
其中,第一公钥和第一私钥构成的非对称密钥对、以及第二公钥和第二私钥构成的非对称密钥对是由相同的密钥生成算法生成的。由于密钥生成算法每次计算采用不同的随机数,所以每次计算生成的非对称密钥对几乎不同,则客户端生成的非对称密钥对和服务端生成的非对称密钥对一般情况下不同。
服务端获得第二公钥和第二私钥后,可以根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成共享密钥。
密钥协商算法可以称为密钥交换算法,例如,可以是ECDH算法。其中,ECDH是基于ECC(Elliptic Curve Cryptosystems,椭圆曲线密码体制)的DH(Diffie-Hellman)密钥交换算法。从而实现双方在不共享任何秘密的情况下协商出一个共同的密钥。
本实施例中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。作为其中一种实现方式,客户端和服务端采用的密钥协商算法相同,客户端和服务端采用的密钥生成算法也相同,并且所述密钥协商算法与所述密钥生成算法满足:针对利用所述密钥生成算法生成的任意两个非对称密钥对,选择其中任一非对称密钥对中的公钥以及另一非对称密钥对中的私钥,利用所述密钥协商算法得到的协商结果相同。
服务端获得共享密钥后,可以利用所述共享密钥加密所述数据请求对应的种子参数,并将加密得到的密文和所述第二公钥发送至所述客户端。其中,种子参数是用于生成离线付款码的种子参数。服务端在接收到数据请求后,可以根据数据请求获取种子参数。每个客户端对应的种子参数可以相同,也可以不同,具体根据需求确定。
关于第二公钥的发送,在一个例子中,可以直接将第二公钥发送至客户端,提高发送效率。
在另一个例子中,所述方法还包括:
利用服务端证书中的私钥对所述第二公钥进行签名,获得第二签名信息,所述服务端证书是指定机构颁发给所述服务端的证书。
将加密得到的密文和所述第二公钥发送至所述客户端时,还将所述第二签名信息发送至所述客户端,以便所述客户端根据所述服务端证书中的公钥和所述第二公钥,对所述第二签名信息进行验签,验签通过后,所述客户端对所述密文进行解密。
其中,指定机构可以是能够颁发证书的机构。指定机构颁发给服务端的证书中至少包括私钥和公钥,即服务端证书中包括私钥和公钥。关于客户端获得服务端证书中公钥的方式,可以是服务端预先广播至客户端,也可以是服务端在发送密文和第二公钥时发送给客户端。
作为其中一种签名方法,服务端可以利用哈希算法对第二公钥进行哈希运算,获得第三信息摘要,并利用服务端证书中的私钥对第三信息摘要进行加密,获得第二签名信息,然后将密文、第二公钥、第二签名信息发送至所述客户端。
所述客户端可以根据所述服务端证书中的公钥和所述第二公钥,对所述第二签名信息进行验签,验签通过后,所述客户端对密文进行解密。
作为其中一种验签方法,客户端可以利用哈希算法对接收到的第二公钥进行哈希运算,获得第四信息摘要,并利用服务端证书中的公钥对第二签名信息进行解密,获得第三信息摘要,验证第三信息摘要和第四信息摘要是否一致,若一致,则表示验签通过,只有验签通过时客户端才执行对密文进行解密的操作。
由上述实施例可见,通过对第二公钥进行签名、以及对第二签名信息进行验签,在验签通过时,可以保证第二公钥没有被篡改,同时通过服务端证书确保数据服务端是经过权威机构认证的具有安全性的一端,从而保证共享密钥的协商过程的安全性。
与本申请数据传输方法的实施例相对应,本申请还提供了数据传输装置以及数据传输系统的实施例。
参见图4,为本申请数据传输系统的一个实施例框图:
所述系统40包括数据请求端装置41和数据提供端装置42。
所述数据请求端装置41生成包括第一公钥和第一私钥的非对称密钥对,向数据提供端装置42发送携带有所述第一公钥的数据请求。
所述数据提供端装置42获取包括第二公钥和第二私钥的非对称密钥对,并根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成共享密钥。
所述数据提供端装置42利用所述共享密钥加密所述数据请求对应的目标数据,并将加密得到的密文和所述第二公钥发送至所述数据请求端装置41。
所述数据请求端装置41根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述目标数据。
其中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。
在一个可选的实现方式中,所述数据请求端装置41利用请求端证书中的私钥对所述第一公钥进行签名,获得第一签名信息,并将携带有所述第一公钥和所述第一签名信息的数据请求发送至数据提供端装置42,所述请求端证书是指定机构颁发给所述数据请求端的证书。
所述数据提供端装置42在向数据请求端装置41返回密文和第二公钥之前,根据所述请求端证书中的公钥和所述第一公钥,对所述第一签名信息进行验签,确定验签通过。
在一个可选的实现方式中,所述数据提供端装置42利用提供端证书中的私钥对所述第二公钥进行签名,获得第二签名信息,并在将加密得到的密文和所述第二公钥发送至所述数据请求端装置41时,还将所述第二签名信息发送至所述数据请求端装置41;所述提供端证书是指定机构颁发给所述数据提供端的证书。
所述数据请求端装置41在对密文解密之前,根据提供端证书中的公钥和所述第二公钥,对所述第二签名信息进行验签,确定验签通过。
参见图5,为本申请数据传输装置的一个实施例框图:
所述装置包括:密钥生成模块51、请求发送模块52、信息接收模块53、共享密钥生成模块54和信息解密模块55。
密钥生成模块51,用于生成包括第一公钥和第一私钥的非对称密钥对。
请求发送模块52,用于向服务端发送携带有所述第一公钥的数据请求。
信息接收模块53,用于接收所述服务端发送的密文和第二公钥,所述第二公钥是服务端获取的非对称密钥对中的公钥,该服务端获取的非对称密钥对中还包括第二私钥,所述密文是利用共享密钥将用于生成离线付款码的种子参数加密后的信息;该共享密钥是根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成的密钥。
共享密钥生成模块54,用于根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥。
信息解密模块55,用于利用所述共享密钥对所述密文进行解密,得到所述种子参数。
其中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。
在一个可选的实现方式中,所述请求发送模块52具体用于:
利用客户端证书中的私钥对所述第一公钥进行签名,获得第一签名信息,所述客户端证书是指定机构颁发给所述客户端的证书。
向服务端发送携带有所述第一公钥和所述第一签名信息的数据请求,以便所述服务端利用客户端证书中的公钥和所述第一公钥对所述第一签名信息进行验签,验签通过后向所述客户端发送所述密文和所述第二公钥。
参见图6,为本申请数据传输装置的另一个实施例框图:
所述装置包括:请求接收模块61、密钥获取模块62、共享密钥生成模块63、信息加密模块64和信息发送模块65。
其中,请求接收模块61,用于接收客户端发送的携带有第一公钥的数据请求,所述数据请求用于请求服务端返回用于生成离线付款码的种子参数,所述第一公钥是所述客户端生成的非对称密钥对中的公钥,该客户端生成的非对称密钥对中还包括第一私钥。
密钥获取模块62,用于获取包括第二公钥和第二私钥的非对称密钥对。
共享密钥生成模块63,用于根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成共享密钥。
信息加密模块64,用于利用所述共享密钥加密所述数据请求对应的种子参数。
信息发送模块65,用于将加密得到的密文和所述第二公钥发送至所述客户端,以便所述客户端根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述种子参数。
其中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。
在一个可选的实现方式中,所述装置60还包括(图6未示出):
签名模块,用于利用服务端证书中的私钥对所述第二公钥进行签名,获得第二签名信息,所述服务端证书是指定机构颁发给所述服务端的证书。
所述信息发送模块65,还用于将加密得到的密文和所述第二公钥发送至所述客户端时,还将所述第二签名信息发送至所述客户端,以便所述客户端根据所述服务端证书中的公钥和所述第二公钥,对所述第二签名信息进行验签,验签通过后,所述客户端对所述密文进行解密。
基于此,本申请还提供一种可穿戴设备,所述可穿戴设备包括安全元件(SecureElement,SE)芯片,安全元件芯片用于:
生成包括第一公钥和第一私钥的非对称密钥对,向服务端发送携带有所述第一公钥的数据请求。
接收所述服务端发送的密文和第二公钥,所述第二公钥是服务端获取的非对称密钥对中的公钥,该服务端获取的非对称密钥对中还包括第二私钥,所述密文是利用共享密钥将用于生成离线付款码的种子参数加密后的信息;该共享密钥是根据所述第二私钥和所述第一公钥,采用预设的密钥协商算法生成的密钥。
根据所述第一私钥和所述第二公钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述种子参数。
其中,根据所述第二私钥和所述第一公钥采用预设的密钥协商算法生成的共享密钥、与根据所述第一私钥和所述第二公钥采用所述密钥协商算法生成的共享密钥相同。
由上述实施例可见,通过在可穿戴设备中配置SE,使非对称密钥对的生成、共享密钥的生成、目标数据的存储、密文的解密等在SE中进行,又由于SE具备防破解的保护,从而让目标数据达到非常高的安全级别。
为了避免现有技术中信息安全性问题、以及加解密耗费时间长的问题,本申请还提供另一种数据传输方法,如图7所示,图7为本申请数据传输方法的另一个实施例流程图,该方法可以包括以下步骤701至步骤708:
在步骤701中,数据请求端生成第一对称密钥。
在步骤702中,数据请求端向数据提供端发送携带有所述第一对称密钥的数据请求。
在步骤703中,所述数据提供端获取第二对称密钥,所述第二对称密钥与所述第一对称密钥不同。
在步骤704中,数据提供端根据所述第一对称密钥和所述第二对称密钥,采用预设的密钥协商算法生成共享密钥。
在步骤705中,数据提供端利用所述共享密钥加密所述数据请求对应的目标数据。
在步骤706中,数据提供端将加密得到的密文和所述第二对称密钥发送至所述数据请求端。
在步骤707中,数据请求端根据所述第一对称密钥和所述第二对称密钥,采用所述密钥协商算法生成共享密钥。
在步骤708中,数据请求端利用所述共享密钥对所述密文进行解密,得到所述目标数据。
由上述实施例可见,可以通过数据请求端获得第一对称密钥,并将携带有第一对称密钥的数据请求发送至数据提供端,通过数据提供端获取第二对称密钥,并根据第一对称密钥和第二对称密钥,采用预设的密钥协商算法生成共享密钥,并利用该共享密钥加密数据请求对应的目标数据,最后将加密得到的密文以及第二对称密钥传输至数据请求端,数据请求端根据第一对称密钥和第二对称密钥,采用相同的密钥协商算法生成共享密钥,由于数据提供端和数据请求端的密钥协商算法相同,因此数据提供端和数据请求端生成的共享密钥相同,数据请求端可以通过生成的共享密钥对密文进行解密,从而获得目标数据。可见,由于对称密钥算法每次计算采用不同的随机数,所以每次计算生成的对称密钥对不同,从而不同客户端生成的对称密钥对也不同,避免了由于某个客户端设备或服务端设备的密钥泄露,导致所有客户端设备和服务端设备存在安全风险的问题,同时,由于共享密钥分别与第一对称密钥和第二对称密钥都不相同,即使黑客劫持到对称密钥也不知道本申请采用了何种密钥协商算法,因此无法对密文进行解密,从而保证数据在整个传输过程中的安全性。另外,由于加密目标数据和解密目标数据的共享密钥相同,因此采用对称密钥加解密算法对数据进行加解密,避免复杂的非对称加解密算法导致的加解密时间长,从而提高了加解密的效率。
其中,生成第一对称密钥的密钥生成算法和生成第二对称密钥的密钥生成算法可以相同,也可以不相同,具体不做限定。由于密钥生成算法每次生成的对称密钥不同,则第二对称密钥与所述第一对称密钥不同。
在数据请求端获得第一对称密钥后,可以根据第一对称密钥生成携带第一对称密钥的数据请求。其中,数据请求是用来请求目标数据的请求。在生成数据请求后,可以将该数据请求发送至数据提供端。
在一个例子中,数据请求端可以利用数据请求直接携带第一对称密钥,从而提高生成数据请求的速度。
在另一个例子中,所述向数据提供端发送携带有所述第一对称密钥的数据请求,包括:
所述数据请求端利用请求端证书中的私钥对所述第一对称密钥进行签名,获得第一签名信息,所述请求端证书是指定机构颁发给所述数据请求端的证书
所述数据请求端将携带有所述第一对称密钥和所述第一签名信息的数据请求发送至数据提供端。
其中,指定机构可以是能够颁发证书的机构。指定机构颁发给数据请求端的证书中至少包括私钥和公钥。
数据提供端在接收到数据请求后,数据提供端可以根据所述请求端证书中的公钥和所述第一对称密钥,对所述第一签名信息进行验签,验签通过后所述数据提供端执行向数据请求端返回密文和第二对称密钥的操作。
由上述实施例可见,通过对第一对称密钥进行签名、以及对第一签名信息进行验签,在验签通过时,可以保证第一对称密钥没有被篡改,同时通过请求端证书确保数据请求端是经过权威机构认证的具有安全性的一端,从而保证共享密钥的协商过程的安全性。
数据提供端在接收到数据请求后,可以获得第二对称密钥。数据提供端获得第二对称密钥后,可以根据所述第一对称密钥和所述第二对称密钥,采用预设的密钥协商算法生成共享密钥。
其中,密钥协商算法又可以称为密钥交换算法,例如,可以是ECDH算法。其中,ECDH是基于ECC(Elliptic Curve Cryptosystems,椭圆曲线密码体制)的DH(Diffie-Hellman)密钥交换算法。从而实现双方在不共享任何秘密的情况下协商出一个共同的密钥。
数据提供端可以利用所述共享密钥加密所述数据请求对应的目标数据,并将加密得到的密文和所述第二对称密钥发送至所述数据请求端。
在一个例子中,数据提供端可以直接将第二对称密钥发送至数据请求端,提高发送效率。
在另一个例子中,所述数据提供端利用提供端证书中的私钥对所述第二对称密钥进行签名,获得第二签名信息,所述提供端证书是指定机构颁发给所述数据提供端的证书。
所述数据提供端将加密得到的密文和所述第二对称密钥发送至所述数据请求端时,还将所述第二签名信息发送至所述数据请求端。
其中,指定机构可以是能够颁发证书的机构。指定机构颁发给数据提供端的证书中至少包括私钥和公钥,即提供端证书包括私钥和公钥。
所述数据请求端根据所述提供端证书中的公钥和所述第二对称密钥,对所述第二签名信息进行验签,验签通过后,所述数据请求端执行对密文进行解密的步骤。
由上述实施例可见,通过对第二对称密钥进行签名、以及对第二签名信息进行验签,在验签通过时,可以保证第二对称密钥没有被篡改,同时通过提供端证书确保数据提供端是经过权威机构认证的具有安全性的一端,从而保证共享密钥的协商过程的安全性。
与本申请数据传输方法的实施例相对应,本申请还提供了数据传输系统的实施例。
参见图8,为本申请数据传输系统的另一个实施例框图:
所述系统80包括数据请求端装置81和数据提供端装置82。
所述数据请求端装置81生成第一对称密钥,向数据提供端装置82发送携带有所述第一对称密钥的数据请求。
所述数据提供端装置82获取第二对称密钥,并根据所述第一对称密钥和所述第二对称密钥,采用预设的密钥协商算法生成共享密钥,所述第二对称密钥与所述第一对称密钥不同。
所述数据提供端装置82利用所述共享密钥加密所述数据请求对应的目标数据,并将加密得到的密文和所述第二对称密钥发送至所述数据请求端装置81。
所述数据请求端装置81根据所述第一对称密钥和所述第二对称密钥,采用所述密钥协商算法生成共享密钥,并利用所述共享密钥对所述密文进行解密,得到所述目标数据。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。