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

文档序号:16511572发布日期:2019-01-05 09:22阅读:252来源:国知局
一种数据加密、解密方法、系统及数据加密、解密装置与流程

本发明涉及互联网技术领域,特别涉及一种数据加密、解密方法、系统及数据加密、解密装置。



背景技术:

随着互联网技术的不断发展,互联网已经成为人们生活、工作和娱乐的重要组成部分。人们通过互联网,可以浏览各种各样的信息,并且可以进行支付、收发文件、即时通信等活动。

随着人们对互联网越来越依赖,互联网中的信息安全也显得尤为重要。当前,互联网中产生的部分数据流量中,可能会携带固定特征,该固定特征例如可以表现为长度固定的一个字符串。这样,不法分子通过截获数据流量,然后对其中的固定特征进行分析,从而可以确定当前的数据流量是采用哪种协议进行传输的。进一步地,不法分子会根据确定出的协议,对该数据流量有针对性地进行盗取或者篡改,这样会危及用户的信息安全。因此,目前亟需一种能够提高数据流量安全性的方法。



技术实现要素:

本申请的目的在于提供一种数据加密、解密方法、系统及数据加密、解密装置,能够提高数据流量在传输过程中的安全性。

为实现上述目的,本申请一方面提供一种数据加密方法,所述方法应用于数据加密装置中,所述数据加密装置与数据解密装置协商得到预设冗余数据;所述方法包括:接收待传输的原始数据;生成指定长度的随机内容,并将生成的所述随机内容添加至所述原始数据中,以形成新数据;基于所述新数据的长度以及所述预设冗余数据,生成所述新数据的加密密钥;利用所述加密密钥对所述新数据进行加密。

为实现上述目的,本申请另一方面还提供一种数据加密装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的方法。

为实现上述目的,本申请另一方面还提供一种数据解密方法,所述方法应用于数据解密装置中,所述数据解密装置与数据加密装置协商得到预设冗余数据;所述方法包括:识别加密后的数据的长度,并基于识别出的所述长度以及所述预设冗余数据,生成所述加密后的数据所使用的加密密钥;利用所述加密密钥对所述加密后的数据进行解密,得到解密后的数据;从所述解密后的数据中去除所述数据加密装置添加的具备指定长度的随机内容,得到原始数据。

为实现上述目的,本申请另一方面还提供一种数据解密装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的方法。

为实现上述目的,本申请另一方面还提供一种数据加解密系统,所述系统包括数据加密装置和数据解密装置,其中,所述数据加密装置用于实现上述的数据加密方法,所述数据解密装置用于实现上述的数据解密方法。

由上可见,本申请提供的技术方案,加密装置在接收到待传输的原始数据之后,可以在该原始数据中添加指定长度的随机内容,从而可以将原始数据随机更改为新数据。为了数据传输的保密性,加密装置可以基于该新数据的长度以及预设冗余数据,生成用于对该新数据进行加密的加密密钥。最终,便可以利用该加密密钥对新数据加密之后再进行传输。一方面,由于在原始数据中加入了随机内容,因此可以去除原始数据的固定特征;另一方面,通过新数据的长度和预设冗余数据生成的加密密钥,能够保证加密后的数据在传输过程中的安全性。

在本申请中,解密装置在接收到加密之后的数据后,可以根据与加密装置预先协商得到的该预设冗余数据,以及识别出的加密后的数据的长度,按照与加密装置类型的方式,计算出该加密后的数据所使用的加密密钥。然后,便可以利用该加密密钥对加密后的数据进行解密。解密得到的是加入了随机内容的新数据,在这种情况下,解密装置可以确定出随机内容的指定长度,并可以根据随机内容在解密后的数据中所处的位置,从解密后的数据中去除该指定长度的随机内容,从而可以得到原始数据。

由上可见,通过在原始数据中加入随机内容,并利用加密密钥对加入随机内容的数据进行加密,从而可以去除原始数据的固定特征,同时还能保证数据传输过程中的安全性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施方式中数据加解密装置所在的系统结构示意图;

图2是本发明实施方式中数据加密方法的步骤示意图;

图3是本发明实施方式中随机内容的示意图;

图4是本发明实施方式中数据解密方法的步骤示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本申请提供一种数据加密、解密方法,该方法可以应用于数据加解密系统中。请参阅图1,在实际应用中,所述数据加解密系统可以包括数据加密装置和数据解密装置。其中,为了描述方便,在阐述数据加密方法时,可以将对应的装置称之为数据加密装置,而在阐述数据解密方法时,可以将对应的装置称之为数据解密装置。但本领域技术人员应当知晓,在实际应用中,上述的数据加密装置和数据解密装置可以是一个同时具备数据加密和数据解密功能的装置,而并非一定是两个独立的装置。因此,本申请以下阐述的数据加密方法和数据解密方法,可以应用于同一个装置中,也可以应用于不同的装置中,还可以应用于同一个装置的不同模块中,本申请对此并不做限定。

如图1所示,该数据加解密装置可以分别部署于数据传输的源端和目的端,用于对源端和目的端之间传输的数据进行加密和解密。在数据传输之前,数据加密装置和数据解密装置可以预先建立用于传输数据的安全通道,在建立安全通道时,数据加密装置和数据解密装置可以通过数据交互,协商得到一个预设冗余数据,该预设冗余数据可以作为盐值(salt)存储于数据加密装置和数据解密装置中,后续可以在数据传输的过程中,可以利用该预设冗余数据来确保数据传输的安全性。

请参阅图2,本申请提供的应用于数据加密装置中的数据加密方法可以包括以下步骤。

s11:接收待传输的原始数据。

在本实施方式中,当源端需要向目的端发送数据时,该待发送的数据可以作为原始数据。所述原始数据例如可以是源端和目的端在进行双端握手时传输的数据,也可以是双端在进行数据传输时交互的数据。该原始数据可以被数据加密装置接收,并可以被所述数据加密装置进行加密。

s13:生成指定长度的随机内容,并将生成的所述随机内容添加至所述原始数据中,以形成新数据。

在本实施方式中,数据加密装置在接收到原始数据后,为了去除原始数据中的固定特征,可以在原始数据中添加指定长度的随机内容。通常而言,数据的固定特征往往是通过数据包头中的字符串来体现的,因此,在本实施方式中,可以通过将随机内容拼接在原始数据的前部,以去除原始数据的数据包头的固定特征。

在本实施方式中,可以预先根据时间戳和上述的预设冗余数据,确定该随机内容的指定长度。具体地,所述原始数据在发送时,源端可以在发送该原始数据时一并发送该原始数据时的时间戳,这样,数据加密装置在接收到该原始数据的同时,接收到对应的时间戳。此外,在实际应用中,源端发出的原始数据中,也可以不携带对应的时间戳,数据加密装置可以将接收到原始数据的时刻作为该原始数据对应的时间戳。

在本实施方式中,在获取到原始数据对应的时间戳之后,可以将所述时间戳与所述预设冗余数据拼接作为特征数据;然后,可以利用预设的散列算法,计算所述特征数据的哈希值,该预设的散列算法例如可以是sha1(securehashalgorithm,安全散列算法)算法。在计算得到该特征数据的哈希值之后,可以基于所述哈希值确定所述随机内容的指定长度,具体地,可以取该哈希值前两个字节的内容,然后用该前两个字节的内容除以256之后,将得到的结果取整,从而可以作为该随机内容的指定长度。可以理解的是,基于哈希值来确定指定长度的具体方式可根据实际设定而修改。

在本实施方式中,在确定了该指定长度之后,便可以生成具备该指定长度的随机内容。例如,在linux系统中,可以通过/dev/random的指令生成具备指定长度的随机内容。

在本实施方式中,请参阅图3,原始数据可以由数据包头和数据包体构成,在生成具备所述指定长度的随机内容后,可以将该随机内容作为原始数据的数据包头的一部分,将所述随机内容拼接至所述原始数据的数据包头的前部,从而通过改变数据包头中包含的字符串的方式,来去除原始数据的固定特征。如此一来,当第三方非法获得该原始数据后,由于受到随机内容的干扰,将无法对该数据进行正确识别。

s15:基于所述新数据的长度以及所述预设冗余数据,生成所述新数据的加密密钥。

在本实施方式中,在原始数据中拼接随机内容后,可以得到新数据。为了保证该新数据在传输过程中的安全性,可以对该新数据进行加密处理。数据加密装置可以生成针对该新数据的加密密钥。具体地,数据加密装置可以识别该新数据的长度l,并可以通过预设散列算法计算所述新数据的长度l对应的长度散列值。例如,该预设散列算法可以是sha512算法,通过sha512(l)便可以计算得到上述的长度散列值。然后,数据加密装置可以将所述长度散列值和所述预设冗余数据拼接为目标数据,并通过所述预设散列算法计算所述目标数据的散列值。利用公式便可以表示为:sha512(sha512(l)+salt)。其中,salt可以表示所述预设冗余数据,“+”可以表示将sha512(l)与预设冗余数据进行拼接。sha512(*)则表示该预设散列算法。最终,可以将所述目标数据的散列值作为所述新数据的加密密钥。

s17:利用所述加密密钥对所述新数据进行加密。

在本实施方式中,在得到上述的加密密钥之后,可以将所述新数据与所述加密密钥进行异或运算,从而完成对该新数据的加密过程。异或运算后的数据便可以作为加密后的数据。该加密后的数据可以由数据加密装置通过预先建立的安全通道,发送至数据解密装置处。

在一个实施方式中,为了便于数据解密装置对加密后的数据进行解密,数据加密装置在得到加密后的数据后,还可以将计算指定长度的过程中使用的时间戳添加至加密后的数据中。这样,数据解密装置接收到携带该时间戳的加密数据后,便可以基于所述预设冗余数据以及从该加密数据中识别出的所述时间戳,按照同样的方式计算得到所述指定长度。后续,数据解密装置便可以从解密得到的数据中去除所述指定长度的内容,从而还原得到原始数据。

具体而言,在加密数据中添加时间戳的方式可以包含直接将预设长度的时间戳添加在加密数据的固定位置,其中该预设长度及固定位置是加密、解密装置相互协商好的,或者初始设置的。例如,将时间戳添加在加密数据的前部、尾部或中间。如此一来,解密装置在接收到来自加密装置发送的数据之后,可基于时间戳的添加位置及长度,从接收到的数据中截取出时间戳,而被截取后的数据,则为需要通过密钥进行解密的数据。通过这种方式的处理,当传输过程中的数据被非法劫持后,也会增加数据被破解的难度。

本申请还提供一种数据加密装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述数据加密装置执行的数据加密方法。

本申请还提供一种数据解密方法,所述方法可以应用于数据解密装置中。请参阅图4,所述方法可以包括以下步骤。

s21:识别加密后的数据的长度,并基于识别出的所述长度以及所述预设冗余数据,生成所述加密后的数据所使用的加密密钥。

在本实施方式中,数据解密装置接收到的加密后的数据中,可以对该加密后的数据进行解密。数据解密装置需要获取该加密后的数据所使用的加密密钥,才能对该加密后的数据进行解密。按照数据加密装置生成加密密钥的过程,数据解密装置可以识别所述加密后的数据的长度l,并可以通过预设散列算法计算识别出的所述长度l对应的长度散列值。

例如,该预设散列算法可以是sha512算法,通过sha512(l)便可以计算得到上述的长度散列值。然后,数据解密装置可以将所述长度散列值和预先协商得到的所述预设冗余数据拼接为目标数据,并通过所述预设散列算法计算所述目标数据的散列值。利用公式便可以表示为:sha512(sha512(l)+salt)。其中,salt可以表示所述预设冗余数据,“+”可以表示将sha512(l)与预设冗余数据进行拼接。sha512(*)则表示该预设散列算法。最终,可以将所述目标数据的散列值作为该加密后的数据所使用的加密密钥。

s23:利用所述加密密钥对所述加密后的数据进行解密,得到解密后的数据。

在本实施方式中,生成了所述加密密钥之后,数据解密装置可以将所述加密后的数据与所述加密密钥进行异或运算,从而完成数据解密的过程。异或运算后的数据便可以作为解密后的数据。

s25:从所述解密后的数据中去除所述数据加密装置添加的具备指定长度的随机内容,得到原始数据。

在本实施方式中,数据加密装置在去除原始数据的固定特征时,在原始数据的前部拼接了具备指定长度的随机内容。那么数据解密装置解密得到的数据中,也存在该指定长度的随机内容。为了得到原始的数据,需要将解密后的数据中包含的随机内容去除。

在本实施方式中,由于随机内容位于原始数据的前部,那么只要获知随机内容的指定长度,便可以从解密后的数据的前部去除该指定长度的随机内容。该指定长度是数据加密装置基于时间戳和预设冗余数据计算得到的,那么数据解密装置可以按照相同的方法计算出该指定长度。

数据加密装置在完成数据加密之后,可以在加密后的数据的固定位置中加入预设长度的时间戳,该时间戳可以是原始数据被发送至数据加密装置时对应的时刻,也可以是数据加密装置对原始数据进行加密处理时对应的时刻,其中该固定位置和预设长度是加解密装置预先协商好的。

那么,数据解密装置接收到加密后的数据后,可以基于固定位置信息及预设长度,从该数据的中识别出上述的时间戳,并截取出来。然后,可以将所述时间戳与预先协商得到的所述预设冗余数据拼接为特征数据。接着,数据解密装置可以通过同样的sha1散列算法,计算所述特征数据的哈希值,并可以取该哈希值前两个字节的内容,然后用该前两个字节的内容除以256之后,将得到的结果取整,从而可以作为该随机内容的指定长度。在确定出该指定长度之后,数据解密装置便可以将解密后的数据中,处于前部的具备该指定长度的随机数据去除,便可以从解密后的数据中去除数据加密装置添加的随机内容,从而得到原始的数据。

本申请还提供一种数据解密装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述数据解密装置执行的数据解密方法。

本申请另一方面还提供一种数据加解密系统,所述系统包括数据加密装置和数据解密装置,其中,所述数据加密装置用于实现上述的数据加密方法,所述数据解密装置用于实现上述的数据解密方法。

在一应用场景中,上述的数据加密方法和数据解密方法,可以应用于服务器与客户端之间,其中,服务器和客户端中可以分别设置上述的数据加解密装置,通过实现数据在端的加解密过程,从而保证数据在服务器与客户端之间的安全传输。

在另一种应用场景中,可以分别在客户端和服务器处各自部署一个代理服务器,在部署的这两个代理服务器中可以安装用于实现上述的数据加解密方法的模块,这样,服务器和客户端之间传输的数据,可以通过对应的代理服务器进行数据加密或者解密。

当然,在另一种应用场景中,上述的数据加解密过程也可以应用于客户端与代理服务器之间,或者应用于服务器与代理服务器之间,本申请对此并不做限定。

在上述应用场景中,数据传输的两端都分别设置有加解密装置或模块,可用于实现数据传输过程中的双向加密,值得注意的是,在其他应用场景中,也可通过仅在两端分别设置加密或解密装置(模块)来实现数据的单向传输的加密,本发明并不作限制。

由上可见,本申请提供的技术方案,加密装置在接收到待传输的原始数据之后,可以在该原始数据中添加指定长度的随机内容,从而可以将原始数据随机更改为新数据。为了数据传输的保密性,加密装置可以基于该新数据的长度以及预设冗余数据,生成用于对该新数据进行加密的加密密钥。最终,便可以利用该加密密钥对新数据加密之后再进行传输。一方面,由于在原始数据中加入了随机内容,因此可以去除原始数据的固定特征;另一方面,通过新数据的长度和预设冗余数据生成的加密密钥,能够保证加密后的数据在传输过程中的安全性。

在本申请中,解密装置在接收到加密之后的数据后,可以根据与加密装置预先协商得到的该预设冗余数据,以及识别出的加密后的数据的长度,按照与加密装置类型的方式,计算出该加密后的数据所使用的加密密钥。然后,便可以利用该加密密钥对加密后的数据进行解密。解密得到的是加入了随机内容的新数据,在这种情况下,解密装置可以确定出随机内容的指定长度,并可以根据随机内容在解密后的数据中所处的位置,从解密后的数据中去除该指定长度的随机内容,从而可以得到原始数据。

由上可见,通过在原始数据中加入随机内容,并利用加密密钥对加入随机内容的数据进行加密,从而可以去除原始数据的固定特征,同时还能保证数据传输过程中的安全性。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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