一种数据加密的方法、装置及系统与流程

文档序号:11843043阅读:335来源:国知局
一种数据加密的方法、装置及系统与流程

本发明涉及加密领域,特别是涉及一种数据加密的方法、装置及系统。



背景技术:

随着信息化的高速发展,人们对信息安全的需求越来越多。人员流动、市场竞争、金融危机、敌对势力等都给企业的发展带来巨大风险,内部窃密、黑客攻击、无意识泄密等窃密手段成为了人与人之间,企业与企业之间、国与国之间的安全隐患。传统的人传递信息,虽然可靠性高,但时效性低,影响信息处理等的后续工作。因此加密系统的研究与发展显得尤为重要。

为了防止业务数据在通信过程中不被他人盗取,需要对业务数据进行加密处理。而在现有技术中,对业务数据进行加密处理时,需要客户端及服务器预先约定好加解密所需的密钥,且客户端与服务器端约定好加解密所需的密钥后,不再改变。这样,容易导致客户端及服务器端在密钥泄露后,其通信过程中加密后的业务数据也会泄露,降低了业务数据传输的安全性。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种数据加密的方法、装置及系统,用于提高业务数据传输的安全性。

为实现上述目的及其他相关目的,本发明提供一种数据加密的方法,包括以下步骤:周期性根据随机密钥生成算法,生成第一密钥;向服务器发送第一密钥;根据所述第一密钥及通信密钥生成算法,确定通信密钥;根据所述通信密钥对业务数据进行加密处理,并将加密后的业务数据发送至所述服务器;计算已发送内容的哈希值,并利用所述通信密钥对所述哈希值进行加密处理,并将加密后的哈希值发送至所述服务器。

于本发明的一实施例中,在所述根据所述第一密钥及通信密钥生成算法,确定通信密钥之前,还包括:接收所述服务器发送的第二密钥;所述根据所述第一密钥及通信密钥生成算法,确定通信密钥包括:根据所述第一密钥、所述第二密钥及通信密钥生成算法,确定所述通信密钥。

于本发明的一实施例中,所述第二密钥为所述服务器利用所述第一密钥加密处理后的密钥;在所述根据所述第一密钥、所述第二密钥及通信密钥生成算法,确定所述通信密钥之前,还包括:根据所述第一密钥,对接收的所述第二密钥进行解密处理,得到所述第二密钥的明文;所述根据所述第一密钥、所述第二密钥及通信密钥生成算法,确定所述通信密钥包括:根据所述第一密钥、所述第二密钥的明文及通信密钥生成算法,确定所述通信密钥。

于本发明的一实施例中,所述接收所述服务器发送的第二密钥包括:接收所述服务器发送的第一消息;所述第一消息中携带有所述第二密钥、服务器证书、密钥相关信息;在所述根据所述第一密钥、所述第二密钥及通信密钥生成算法,确定所述通信密钥之前,还包括:验证所述服务器证书是否有效,若有效则从所述服务器证书中获取所述服务器的加密公钥;根据密钥相关信息,及通信密钥生成算法,生成第三密钥;根据所述服务器的加密公钥对所述第三密钥进行加密处理,得到第三密钥的密文;将所述第三密钥的密文发送至所述服务器;所述根据所述第一密钥、所述第二密钥及通信密钥生成算法,确定所述通信密钥包括:根据所述第一密钥、所述第二密钥、所述第三密钥及通信密钥生成算法,确定所述通信密钥。

于本发明的一实施例中,所述向服务器发送第一密钥包括:向所述服务器发送加密通信请求消息;所述加密通信请求消息中携带有所述第一密钥;所述第一消息包括:加密请求响应消息。

于本发明的一实施例中,在所述周期性根据随机密钥生成算法,生成第一密钥之前,还包括:接收所述服务器发送的第二消息;所述第二消息中携带有密钥长度及密钥有效期;所述周期性根据随机密钥生成算法,生成第一密钥包括:以所述密钥有效期为周期,周期性根据所述第二消息、随机密钥生成算法,生成第一密钥。

进一步的,本发明提供了一种数据加密的方法,包括以下步骤:接收客户端发送的第一密钥;根据所述第一密钥及通信密钥生成算法,确定通信密钥;接收所述客户端发送的加密后的业务数据,并根据所述通信密钥对所述加密后的业务数据进行解密处理,获取所述业务数据的明文;接收所述客户端发送的加密后的哈希值,并根据所述通信密钥对所述加密后的哈希值进行解密处理,获取所述哈希值;确定所述哈希值是否正确,若所述哈希值正确,则对所述业务数据的明文进行相应的数据处理。

于本发明的一实施例中,在所述根据所述第一密钥及通信密钥生成算法,确定通信密钥之前,还包括:根据随机密钥生成算法,生成第二密钥;向所述客户端发送第二密钥;所述根据所述第一密钥及通信密钥生成算法,确定通信密钥包括:根据所述第一密钥、所述第二密钥及通信密钥生成算法,确定所述通信密钥。

于本发明的一实施例中,在所述向所述客户端发送第二密钥之前,还包括:根据所述第一密钥对所述第二密钥进行加密处理;所述向所述客户端发送第二密钥包括:向所述客户端发送加密后的第二密钥。

于本发明的一实施例中,所述向所述客户端发送第二密钥包括:向所述客户端发送第一消息;所述第一消息中携带有所述第二密钥、服务器证书、密钥相关信息;在所述根据所述第一密钥、所述第二密钥及通信密钥生成算法,确定所述通信密钥之前还包括:接收所述客户端发送的第三密钥的密文;对所述第三密钥的密文进行解密处理,获取第三密钥的明文;所述根据所述第一密钥、所述第二密钥及通信密钥生成算法,确定所述通信密钥包括:根据所述第一密钥、所述第二密钥、第三密钥的明文及通信密钥生成算法,确定所述通信密钥。

于本发明的一实施例中,所述接收客户端发送的第一密钥包括:接收客户端发送的加密通信请求消息;所述加密通信请求消息中携带有所述第一密钥;所述第一消息包括:加密请求响应消息。

于本发明的一实施例中,在所述接收客户端发送的第一密钥之前,还包括:向所述客户端发送第二消息;所述第二消息中携带有密钥长度、服务器当前时间、密钥有效期、加密方法及服务器证书。

进一步的,本发明提供了一种客户端,包括:处理单元,用于周期性根据随机密钥生成算法,生成第一密钥;发送单元,用于向服务器发送第一密钥;所述处理单元,还用于根据所述第一密钥及通信密钥生成算法,确定通信密钥;所述处理单元,还用于根据所述通信密钥对业务数据进行加密处理;所述发送单元,还用于将加密后的业务数据发送至所述服务器;所述处理单元,还用于计算已发送内容的哈希值,并利用所述通信密钥对所述哈希值进行加密处理;所述发送单元,还用于将加密后的哈希值发送至所述服务器。

进一步的,本发明提供了一种服务器,包括:接收单元,用于接收客户端发送的第一密钥;处理单元,用于根据所述第一密钥及通信密钥生成算法,确定通信密钥;所述接收单元,还用于接收所述客户端发送的加密后的业务数据;所述处理单元,还用于根据所述通信密钥对所述加密后的业务数据进行解密处理,获取所述业务数据的明文;所述接收单元,还用于接收所述客户端发送的加密后的哈希值;所述处理单元,还用于根据所述通信密钥对所述加密后的哈希值进行解密处理,获取所述哈希值;所述处理单元,还用于确定所述哈希值是否正确,若所述哈希值正确,则对所述业务数据的明文进行相应的数据处理。

进一步的,本发明提供了一种数据加密的系统,包括:上述实施例所述的客户端及上述实施例所述的服务器。

如上所述,本发明的一种数据加密的方法、装置及系统,具有以下有益效果:客户端周期性根据随机密钥生成算法,生成第一密钥,将此第一密钥发送至服务器;客户端可以根据第一密钥及通信密钥生成算法,确定通信密钥,进而利用通信密钥对业务数据进行加密处理,将加密后的业务数据发送至服务器。并且,计算已发送内容的哈希值,利用通信密钥对哈希值进行加密处理,并将加密后的哈希值发送至服务器。这样一来,客户端可以周期性更换第一密钥,使得通信密钥也周期性更换,从而可以保证数据库中存储的用于对业务数据进行加解密的通信密钥可以周期性更换,进而即使数据库中的数据别泄露,但是由于通信密钥周期性更换,数据库中记录的通信密钥并不能一直有效,从而可以降低业务数据被泄露的可能性,提高了业务数据传输的安全性。

附图说明

图1显示为本发明提供的一种数据加密的方法的第一种流程示意图。

图2显示为本发明提供的一种数据加密的方法的第二种流程示意图。

图3显示为本发明提供的一种数据加密的方法的第三种流程示意图。

图4显示为本发明提供的一种数据加密的方法的第四种流程示意图。

图5显示为本发明提供的一种客户端的结构示意图。

图6显示为本发明提供的另一种客户端的结构示意图。

图7显示为本发明提供的一种服务器的结构示意图。

图8显示为本发明提供的另一种服务器的结构示意图。

元件标号说明

501 处理单元

502 发送单元

503 接收单元

601 接收单元

602 处理单元

603 发送单元

S101~S105 步骤

S201~S205 步骤

S301~S317 步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

在现有技术中,客户端与服务器约定好通信密钥后,需按照此通信密钥进行业务数据的加解密,由于通信密钥在客户端与服务器通信过程中不改变,容易因通信密钥泄露导致业务数据泄露,使得业务数据的通信安全性存在隐患。在本发明实施例中,可以对通信密钥进行周期性更新,从而降低因通信密钥泄露导致业务数据泄露的可能性,提高业务数据的通信安全性。

如图1,本发明实施例提供一种数据加密的方法,包括以下步骤:

步骤S101、周期性根据随机密钥生成算法,生成第一密钥。

具体的,在本发明实施例中,客户端与服务器可以周期性更换通信密钥,而通信密钥的生成可以是根据第一密钥生成的。因此,客户端可以根据其内预设的随机密钥生成算法,生成第一密钥。

进一步的,第一密钥为随机数。

需要说明的是,客户端内的随机密钥生成算法可以是管理员根据实际需求预先设置的。客户端根据随机密钥生成算法的不同,生成的第一密钥也不同,具体的生成方法也不同。

步骤S102、向服务器发送第一密钥。

具体的,客户端在生成第一密钥后,需要将其发送至服务器,以便服务器根据第一密钥生成与客户端相同的通信密钥。此时,客户端可以将其生成的第一密钥发送至通信密钥。

步骤S103、根据第一密钥及通信密钥生成算法,确定通信密钥。

具体的,客户端在生成了第一密钥后,可以利用第一密钥根据预设的通信密钥生成算法,生成通信密钥。

需要说明的是,客户端的通信密钥生成算法与服务器的通信密钥生成算法相同,且由管理员根据实际需求进行设置。其中,客户端如何具体根据通信密钥生成算法生成通信密钥与通信密钥生成算法有关。例如,通信密钥生成算法为3DES(Triple Data Encryption Algorithm,三重数据加密)算法,此时,客户端可以根据此3DES算法生成通信密钥。

步骤S104、根据通信密钥对业务数据进行加密处理,并将加密后的业务数据发送至服务器。

具体的,客户端在生成了通信密钥时,若需要与服务器进行通信时,可以向服务器发送业务数据,此时,客户端需要根据通信密钥对需发送至服务器的业务数据进行加密处理,并将加密后的业务数据发送至服务器中。

需要说明而是,通信密钥可以是对称加密算法的密钥,可以是非对称加密算法的密钥,本发明对此不作限制。

步骤S105、计算已发送内容的哈希值,并利用通信密钥对哈希值进行加密处理,并将加密后的哈希值发送至服务器。

具体的,客户端在将加密后的业务数据发送至服务器后,为了防止其他恶心用户对加密后的业务数据进行篡改,可以根据已发送的内容进行哈希值的计算,在技术出哈希值后,可以将此哈希值利用通信密钥进行加密处理,得到加密后的哈希值,并将此加密后的哈希值发送至服务器,以便服务器可以对加密后的哈希值进行解密,得到哈希值,进而根据此哈希值确定上述内容是否被篡改。

需要说明的是,客户端计算哈希值时,可以利用相应的哈希值计算工具进行计算。本发明中的哈希值可以是MD5的哈希值,也可以是SHA1的哈希值,本发明对此不作限制。

这样一来,客户端可以周期性更换第一密钥,使得通信密钥也周期性更换,从而可以保证数据库中存储的用于对业务数据进行加解密的通信密钥可以周期性更换,进而即使数据库中的数据别泄露,但是由于通信密钥周期性更换,数据库中记录的通信密钥并不能一直有效,从而可以降低业务数据被泄露的可能性,提高了业务数据传输的安全性。

如图2所示,本发明实施例提供了一种数据加密的方法,包括以下步骤:

步骤S201、接收客户端发送的第一密钥。

具体的,在客户端根据随机密钥生成算法生成第一密钥后,发送给服务器,服务器可以接收到客户端发送至的第一密钥。

步骤S202、根据第一密钥及通信密钥生成算法,确定通信密钥。

具体的,服务器在接受到客户端发送的第一密钥后,可以根据预设的通信密钥生成算法,利用第一密钥,确定出通信密钥。

步骤S203、接收客户端发送的加密后的业务数据,并根据通信密钥对加密后的业务数据进行解密处理,获取业务数据的明文。

具体的,服务器在生成了通信密钥后,在客户端需要与服务器进行通信时,服务器可以接收到客户端发送的加密后的业务数据,服务器在接收到客户端发送的加密后的业务数据后,可以利用通信密钥对接收的业务数据进行解密处理,进而获取到业务数据的明文。

步骤S204、接收客户端发送的加密后的哈希值,并根据通信密钥对加密后的哈希值进行解密处理,获取哈希值。

具体的,为了防止非法用户对加密后的业务数据的篡改,服务器可以接收到客户端发送的加密后的哈希值。服务器可以通过检测哈希值,进而获知加密后的业务数据是否被篡改。此时,服务器根据通信密钥对接收的哈希值进行解密处理,得到所需的哈希值。

步骤S205、确定哈希值是否正确,若哈希值正确,则对业务数据的明文进行相应的

数据处理。

具体的,服务器在获取到哈希值后,需要验证解密出的哈希值是否正确。此时,服务器可以根据解密出的客户端发送的业务数据进行相应的哈希值的计算,进而将计算出的哈希值与解密出的哈希值进行比对,确定出此解密出的哈希值是否正确。在确定出解密出的哈希值与计算出的哈希值相同时,则可以确定解密出的哈希值正确。在解密出的哈希值正确时,服务器可以对业务数据的明文进行相应的数据处理。

需要说明的是,服务器对业务数据的明文进行相应的数据处理时,可以向客户端返回相应的响应消息。服务器对客户端进行的相应处理本发明对此不做限制。

在确定出解密出的哈希值与计算出的哈希值不相同时,则可以确定解密出的哈希值不正确,此时,服务器不在处理业务数据的明文,可以向客户端发送业务数据已被篡改的消息,以便客户端重新发送业务数据。

这样一来,服务器可以接收客户端发送的第一密钥,可以根据第一密钥生成通信密钥,由于客户端的第一密钥是周期性更新的,因此,服务器的通信密钥也是周期性更新的,从而可以保证数据库中存储的用于对业务数据进行加解密的通信密钥可以周期性更换,进而即使数据库中的数据别泄露,但是由于通信密钥周期性更换,数据库中记录的通信密钥并不能一直有效,从而可以降低业务数据被泄露的可能性,提高了业务数据传输的安全性。

本发明实施例提供了一种数据加密的方法,包括以下步骤:

步骤S301、客户端周期性根据随机密钥生成算法,生成第一密钥。

具体的,参考步骤S101,在此不再赘述。

步骤S302、客户端向服务器发送第一密钥。服务器接收客户端发送的第一密钥。

具体的,可参考步骤S102及步骤S201,在此不再赘述。

进一步的,若客户端与服务器间还未建立通信,客户端与服务器进行通信前,需要先建立连接。此时,客户端可以向服务器发送用于建立客户端与服务器间连接的加密通信请求消息。为了减少通信,客户可以将第一密钥添加至加密通信请求消息中,发送至服务器。

此时,步骤S302客户端向服务器发送第一密钥,服务器接收客户端发送的第一密钥包括:

客户端向服务器发送加密通信请求消息,服务器接收客户端发送的加密通信请求消息。其中,加密通信请求消息中携带有第一密钥。

即为,客户端与服务器进行通信前,需要先建立连接。此时,客户端可以向服务器端发送加密通信请求消息,由于客户端与服务器端进行通信时,需要对通信的业务数据进行加密处理,而客户端与服务器间进行业务数据加密的通信密钥需要根据第一密钥生成,因此,客户端需要将第一密钥发送至服务器。客户端可以将第一密钥添加至加密通信请求消息中,发送至服务器。服务器在接收到加密通信请求消息后,可以解析加密通信请求消息,进而获取到第一密钥。

步骤S303、服务器根据随机密钥生成算法,生成第二密钥。

具体的,为了增加通信密钥的安全性,服务器在获取到第一密钥后,可以根据其自身存储的随机密钥生成算法,生成第二密钥。

需要说明的是,服务器中的随机密钥生成算法与客户端的随机密钥生成算法可以相同,也可以不同,本发明对此不作限制。

步骤S304、服务器根据第一密钥对第二密钥进行加密处理。

具体的,服务器在生成了第二密钥后,由于第二密钥可以用于生成通信密钥,因此,服务器需要将第二密钥发送至客户端。为了提高第二密钥的安全性,服务器在将第二密钥发送至客户端之前,可以利用第一密钥对第二密钥进行加密处理,得到第二密钥的密文。

步骤S305、服务器向客户端发送第一消息。客户端接收服务器发送的第一消息。

其中,第一消息中携带有加密后的第二密钥。

具体的,服务器在得到第二密钥的密文后,即为得到加密后的第二密钥后,可以将加密后的第二密钥发送给客户端。由于服务器在步骤S302中接收到客户端发送的加密通信请求消息,再此步骤中,服务器可以向客户端对加密通信请求进行回复。因此,此时第一消息为加密请求响应消息。服务器可以将加密后的第二密钥添加至加密请求响应消息中发送至客户端。客户端接收服务器发送的加密请求响应消息。客户端对加密请求响应消息进行解析,得到第二密钥的密文。

进一步的,上述第一消息还携带有服务器证书、密钥相关信息。其中,密钥相关信息是与用于确定通信密钥的密钥相关的信息,例如密钥的有效期,密钥的有效长度等,本发明对此不作限制。

步骤S306、客户端根据第一密钥,对接收的第二密钥进行解密处理,得到第二密钥的明文。

具体的,客户端接收到第二密钥的密文后,可以利用其生成的第一密钥,对第二密钥的密文进行解密处理,得到第二密钥的明文。

需要说明的是,在本发明实施例中,客户端及服务器可以直接利用第一密钥及第二密钥生成通信密钥。也可以增加通信密钥的安全性,使客户端继续生成第三密钥,使得客户端与服务器利用三个密钥生成通信密钥。此时,根据具体的安全性要求不同,执行不同的步骤。在客户端及服务器利用第一密钥及第二密钥生成通信密钥时,执行步骤S307a-步骤S308a,步骤S314-步骤S317,如图3所示。在客户端及服务器需利用三个密钥生成通信密钥时,执行步骤S307b步骤S313b,步骤S314-步骤S317,如图4所示。

步骤S307a、客户端根据第一密钥、第二密钥及通信密钥生成算法,确定通信密钥。

具体的,客户端在获取了第二密钥的明文后,可以根据第一密钥、第二密钥的明文,通过通信密钥生成算法将第一密钥及第二密钥进行组合,生成通信密钥。

步骤S307b、客户端根据密钥相关信息,及通信密钥生成算法,生成第三密钥。

具体的,客户端端在第一消息中解析出密钥相关信息后,说明是服务器对用于生成通信密钥的密钥所设定的条件。此时,客户端可以在生成第三密钥时,根据密钥相关信息生成,使生成的第三密钥符合密钥相关信息。

需要说明的是,客户端根据通信密钥生成算法,生成第三密钥的过程与客户端根据通信密钥生成算法,生成第一密钥的过程相同,可参考步骤S103在此不再赘述。

步骤S308a、服务器根据第一密钥、第二密钥及通信密钥生成算法,确定通信密钥。

具体的,可参考步骤S307a,在此不再赘述。

需要说明的是,本发明对步骤S307a与步骤S308a间的顺序不做限制。可以先执行步骤S307a,在执行步骤S308a;也可以先执行步骤S308a,在执行步骤S307a;还可以同时执行步骤S307a及步骤S308a。在图示中仅表示出一种情况。

步骤S308b、客户端根据第一密钥、第二密钥、第三密钥的明文及通信密钥生成算法,确定通信密钥。

具体的,客户端根据第一密钥、第二密钥、第三密钥的明文及通信密钥生成算法,确定通信密钥的过程,与客户端根据第一密钥、第二密钥及通信密钥生成算法,确定通信密钥的过程类似,可参考步骤S307a,在此不再赘述。

步骤S309b、客户端验证服务器证书是否有效,若有效则从服务器证书中获取服务器的加密公钥。

具体的,客户端在接收到服务器发送的第一消息后,可以解析第一消息,获取到第一消息中携带的第二密钥及服务器证书。此时,客户端可以通过查看服务器证书的信息,验证服务器证书是否有效。例如,查看服务器证书的有效时间是否在服务器当前时间之后,若是,则可以认为服务器证书有效。如服务器证书有效时间在服务器当前时间之前,则认为服务器证书失效。当然,查看服务器证书的有效时间仅是检测服务器证书有效的一种方式,还可以通过其他方式查看服务器证书是否有效,例如查看服务器证书的颁发机构,及颁发时间等。本发明对此不作限制。

客户端在检测出服务器证书有效时,可以从此服务器证书中获取出服务器加解密的公钥。

需要说明的是,服务器证书有效时间在服务器当前时间之前是指,服务器当前时间已超过服务器证书有效时间。服务器证书有效时间在服务器当前时间之后是指,服务器当前时间未超过服务器证书有效时间。

需要说明的是,在需要根据服务器证书有效时间,及服务器当前时间进行有效验证时,第一消息中还携带了服务器当前时间。即为,服务器将其当前时间需发送至客户端。

310b、客户端根据服务器的加密公钥对第三密钥进行加密处理,得到第三密钥的密文。

具体的,客户端在生成第三密钥后,需要将第三密钥发送给服务器,以便服务器根据第三密钥进行通信密钥的生成。此时,为了保证第三密钥的安全性,不被非法用户获取,此时,可以将第三密钥用服务器的公钥进行加密处理,得到第三密钥的密文。

需要说明的是,客户端通过服务器的公钥对第三密钥进行加密处理,所使用的加密算法服务器可以通过第一消息告知客户端,此时,第一消息中携带有加密算法。也可以预先设定,客户端直接根据预先设定的加密算法对第三密钥进行加密处理。当然,还可以是其他方式告知客户端利用服务器的公钥对第三密钥进行加密处理的加密算法,本发明对此不作限制。

步骤S311b、客户端将第三密钥的密文发送至服务器。服务器端接收客户端发送的第三密钥的密文。

步骤S312b、服务器对第三密钥的密文进行解密处理,获取第三密钥的明文。

具体的,服务器在接收到第三密钥的密文后,需要对第三密钥的密文进行解密,由于客户端是利用服务器的公钥对第三密钥进行加密的,因此,服务器利用其存储的私钥对第三密钥进行相应的解密处理,得到第三密钥的明文。

步骤S313b、服务器根据第一密钥、第二密钥、第三密钥的明文及通信密钥生成算法,确定通信密钥。

具体的,可参考步骤S308b,在此不再赘述。

需要说明的是,本发明对步骤S307b-步骤S308b与步骤S309b-步骤S313b间的顺序不做限制。可以先执行步骤S307b-步骤S308b,在执行步骤S309b-步骤S313b;也可以先执行步骤S309b-步骤S313b,在执行步骤S307b-步骤S308b;还可以同时执行步骤S307b-步骤S308b及步骤S309b-步骤S313b。在图示中仅表示出一种情况。

步骤S314、客户端根据通信密钥对业务数据进行加密处理,并将加密后的业务数据发送至服务器。服务器接收客户端发送的加密后的业务数据,并根据通信密钥对所述加密后的业务数据进行解密处理,获取业务数据的明文。

具体的,可参考步骤S104,及步骤S203,在此不再赘述。

步骤S315、客户端计算已发送内容的哈希值,并利用通信密钥对哈希值进行加密处理,并将加密后的哈希值发送至服务器。服务器接收客户端发送的加密后的哈希值,并根据通信密钥对加密后的哈希值进行解密处理,获取哈希值。

具体的,可参考步骤S105,及步骤S204,在此不再赘述。

步骤S316、服务器确定哈希值是否正确,若哈希值正确,则对业务数据的明文进行相应的数据处理。

具体的,可参考步骤S205,在此不再赘述。

进一步的,由于各个生成通信密钥的密钥需要周期性更新。即为第一密钥及第二密钥,或第一密钥、第二密钥及第三密钥需要周期性更新。在到达更新周期时,服务器可以向客户端发送用于提示客户端更新生成通信密钥的密钥的第二消息。具体如下:

步骤S317、服务器向客户端发送第二消息。客户端接收服务器发送的第二消息。

其中,第二消息中携带有密钥长度及密钥有效期。进一步的,第二消息中还可以携带服务器当前时间、加密方法及服务器证书。

具体的,在达到第一密钥的更新周期时,服务器可以向客户端发送指示客户端更新第一密钥的第二消息。服务器可以将用于指示客户端在生成第一密钥时,需满足的预设条件即为密钥长度,密钥有效期添加至第二消息。并且,为了保证用户发送生成的第一密钥及后续密钥的安全性,服务器可以将服务器当前时间,服务器证书,加密方法均添加至第二消息中。

此时,客户端在接收到第二消息后,可以解析第二消息,获取到第二消息中携带的密钥长度及密钥有效期。

此时步骤S301客户端周期性根据随机密钥生成算法,生成第一密钥包括:

客户端以密钥有效期为周期,周期性根据第二消息、随机密钥生成算法,生成第一密钥。

即为,客户端在解析出第二消息中携带的密钥长度及密钥有效期后,可以以密钥有效期为周期,根据随机密钥生成算法生成第一密钥,且第一密钥的长度符合第二消息中携带的密钥长度规定的长度。

进一步的,在上述第二消息中携带服务器当前时间、加密方法及服务器证书时,客户端在向服务器发送更新后的第一密钥时,可以利用上述信息对第一密钥加密。即为,客户端先根据服务器当前时间,验证服务器证书是否有效。在服务器证书有效时,可以在服务器证书中获取服务器的公钥,进而可以根据加密算法,及服务器的公钥对第一密钥进行加密处理,并将加密后的第一密钥发送至服务器。此时服务器在接收到加密后的第一密钥后,可以利用其私钥对第一密钥进行解密,进而可以得到客户端更新后的第一密钥。进而继续进行生成通信密钥的过程,在上述过程中以陈述,在此不再赘述。

这样一来,客户端可以周期性更换第一密钥,使得通信密钥也周期性更换,从而可以保证数据库中存储的用于对业务数据进行加解密的通信密钥可以周期性更换,进而即使数据库中的数据别泄露,但是由于通信密钥周期性更换,数据库中记录的通信密钥并不能一直有效,从而可以降低业务数据被泄露的可能性,提高了业务数据传输的安全性。

如图5所示,本发明实施例提供了一种客户端,包括:

处理单元501,用于周期性根据随机密钥生成算法,生成第一密钥。

发送单元502,用于向服务器发送第一密钥。

处理单元501,还用于根据第一密钥及通信密钥生成算法,确定通信密钥。

处理单元501,还用于根据通信密钥对业务数据进行加密处理。

发送单元502,还用于将加密后的业务数据发送至服务器。

处理单元501,还用于计算已发送内容的哈希值,并利用通信密钥对所述哈希值进行加密处理。

发送单元502,还用于将加密后的哈希值发送至服务器。

进一步的,上述客户端,如图6所示,还包括:接收单元503。

接收单元503,用于接收服务器发送的第二密钥。

具体的,接收单元503,具体用于接收服务器发送的第一消息。

其中,第一消息中携带有所述第二密钥、服务器证书、密钥相关信息。

处理单元501,具体用于根据第一密钥、第二密钥及通信密钥生成算法,确定通信密钥。

进一步的,第二密钥为服务器利用第一密钥加密处理后的密钥。

处理单元501,还用于根据第一密钥,对接收的第二密钥进行解密处理,得到第二密钥的明文。

此时,处理单元501,具体用于根据第一密钥、第二密钥的明文及通信密钥生成算法,确定通信密钥。

进一步的,处理单元501,还用于验证服务器证书是否有效,若有效则从服务器证书中获取服务器的加密公钥。

进一步的,处理单元501,还用于根据密钥相关信息,及通信密钥生成算法,生成第三密钥。

处理单元501,还用于根据服务器的加密公钥对第三密钥进行加密处理,得到第三密钥的密文。

发送单元502,还用于将第三密钥的密文发送至服务器。

此时,处理单元501,具体用于根据第一密钥、第二密钥、第三密钥及通信密钥生成算法,确定通信密钥。

进一步的,上述发送单元502,具体用于向服务器发送加密通信请求消息。

其中,加密通信请求消息中携带有第一密钥。

此时,第一消息包括:加密请求响应消息。

进一步的,上述接收单元503,还用于接收服务器发送的第二消息。

其中,第二消息中携带有密钥长度及密钥有效期。

此时,处理单元501,具体用于以密钥有效期为周期,周期性根据所述第二消息、随机密钥生成算法,生成第一密钥。

这样一来,客户端可以周期性更换第一密钥,使得通信密钥也周期性更换,从而可以保证数据库中存储的用于对业务数据进行加解密的通信密钥可以周期性更换,进而即使数据库中的数据别泄露,但是由于通信密钥周期性更换,数据库中记录的通信密钥并不能一直有效,从而可以降低业务数据被泄露的可能性,提高了业务数据传输的安全性。

如图7所示,本发明实施例提供了一种服务器,包括:

接收单元601,用于接收客户端发送的第一密钥。

处理单元602,用于根据第一密钥及通信密钥生成算法,确定通信密钥。

接收单元601,还用于接收客户端发送的加密后的业务数据。

处理单元602,还用于根据通信密钥对加密后的业务数据进行解密处理,获取业务数据的明文。

接收单元601,还用于接收客户端发送的加密后的哈希值。

处理单元602,还用于根据通信密钥对加密后的哈希值进行解密处理,获取哈希值。

处理单元602,还用于确定哈希值是否正确,若哈希值正确,则对业务数据的明文进行相应的数据处理。

进一步的,上述服务器,如图8所示,还包括发送单元603。

处理单元602,还用于根据随机密钥生成算法,生成第二密钥。

发送单元603,用于向客户端发送第二密钥。

处理单元602,具体用于根据第一密钥、第二密钥及通信密钥生成算法,确定通信密钥。

进一步的,上述处理单元602,还用于根据第一密钥对第二密钥进行加密处理。

此时,发送单元603,具体用于向客户端发送加密后的第二密钥。

具体的,发送单元603,具体用于向客户端发送第一消息。

其中,第一消息中携带有第二密钥、服务器证书、密钥相关信息。

上述接收单元601,还用于接收客户端发送的第三密钥的密文。

处理单元602,还用于对第三密钥的密文进行解密处理,获取第三密钥的明文。

此时,处理单元602,具体用于根据第一密钥、第二密钥、第三密钥的明文及通信密钥生成算法,确定通信密钥。

进一步的,接收单元601,具体用于接收客户端发送的加密通信请求消息。

其中,加密通信请求消息中携带有第一密钥。

此时,第一消息包括:加密请求响应消息。

进一步的,发送单元603,还用于向客户端发送第二消息。

其中,第二消息中携带有密钥长度、服务器当前时间、密钥有效期、加密方法及服务器证书。

这样一来,服务器可以接收客户端发送的第一密钥,可以根据第一密钥生成通信密钥,由于客户端的第一密钥是周期性更新的,因此,服务器的通信密钥也是周期性更新的,从而可以保证数据库中存储的用于对业务数据进行加解密的通信密钥可以周期性更换,进而即使数据库中的数据别泄露,但是由于通信密钥周期性更换,数据库中记录的通信密钥并不能一直有效,从而可以降低业务数据被泄露的可能性,提高了业务数据传输的安全性。本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

本发明实施例提供了一种数据加密的系统,包括上述实施例所述的客户端及上述实施例所述的服务器。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

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