一种数据处理方法、装置、设备及介质、程序产品
文献发布时间:2023-06-19 11:32:36
技术领域
本申请涉及信息加密技术领域,尤其涉及一种数据处理方法、装置、设备以及计算机可读存储介质、计算机程序产品。
背景技术
随着互联网尤其是移动互联网的蓬勃发展,产生了大量的网络应用。这些网络应用产生了大量的数据,尤其是视频、图像等数据量较大的数据。然而,很多数据比较敏感,在网络中存储和传输需要对数据进行加密。
目前,业界提供了一些加密算法,用于对数据加密。这些加密算法包括高级加密标准(advanced encryption standard,AES)、数据加密标准(data encryption standard,DES)、李维斯特萨莫尔阿德曼(Rivest Shamir Adleman,RSA)、哈希(hash)或者异或等等。
然而,AES、DES、RSA等算法的加密效率很低,无法快速对视频等大文件完成加解密。异或算法又过于简单,很容易被破解无法保证安全性。业界亟需提供一种高效且具有高可靠性的数据处理方法。
发明内容
本申请提供了一种数据处理方法,该方法通过对待处理的数据进行拆分后,采用预设的加密策略并行加密多个数据块,提高了数据处理的可靠性,提高加密的效率。本申请还提供了上述方法对应的装置、设备、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种数据处理方法,所述方法包括:
获取待处理的数据;
按照预设规则将所述待处理的数据分为多个数据块;
根据预设的加密策略对所述多个数据块并行加密,获得所述数据的密文,其中,所述加密策略指示对所述多个数据块中的至少两个数据块采用不同的加密因子进行加密。
在一些可能的实现方式中,所述方法还包括:
确定所述多个数据块的序号;
所述根据预设的加密策略对所述多个数据块并行加密,包括:
对所述序号满足第一条件的数据块采用第一加密因子进行加密,以及并行地对所述序号满足第二条件的数据块采用第二加密因子进行加密。
在一些可能的实现方式中,所述序号满足第一条件包括所述序号为奇数,所述序号满足第二条件包括所述序号为偶数。
在一些可能的实现方式中,所述加密因子包括加密算法和/或加密密钥。
在一些可能的实现方式中,所述根据预设的加密策略对所述多个数据块并行加密,包括:
根据预设的加密策略,利用多线程对所述多个数据块并行加密。
在一些可能的实现方式中,所述根据预设的加密策略对所述多个数据块并行加密,包括:
在可信执行环境中,根据预设的加密策略对所述多个数据块并行加密。
第二方面,本申请提供了一种数据处理方法,所述方法包括:
获取数据的密文;
按照预设规则将所述数据的密文分为多个密文块;
根据预设的解密策略对所述多个密文块并行解密,获得所述数据,其中,所述解密策略指示对所述多个密文块中的至少两个密文块采用不同的解密因子进行解密。
在一些可能的实现方式中,所述方法还包括:
确定所述多个密文块的序号;
所述根据预设的解密策略对所述多个密文块并行解密,包括:
对所述序号满足第一条件的密文块采用第一解密因子进行解密,以及并行地对所述序号满足第二条件的密文块采用第二解密因子进行解密。
在一些可能的实现方式中,所述序号满足第一条件包括所述序号为奇数,所述序号满足第二条件包括所述序号为偶数。
在一些可能的实现方式中,所述解密因子包括解密算法和/或解密密钥。
在一些可能的实现方式中,所述根据预设的解密策略对所述多个密文块并行解密,包括:
根据预设的解密策略,利用多线程对所述多个密文块并行解密。
在一些可能的实现方式中,所述根据预设的解密策略对所述多个密文块并行解密,包括:
在可信执行环境中,根据预设的解密策略对所述多个密文块并行解密。
第三方面,本申请提供了一种数据处理装置,所述装置包括:
获取单元,用于获取待处理的数据;
拆分单元,用于按照预设规则将所述待处理的数据分为多个数据块;
加密单元,用于根据预设的加密策略对所述多个数据块并行加密,获得所述数据的密文,其中,所述加密策略指示对所述多个数据块中的至少两个数据块采用不同的加密因子进行加密。
在一些可能的实现方式中,所述装置还包括确定单元;
所述确定单元,用于确定所述多个数据块的序号;
所述加密单元,具体用于对所述序号满足第一条件的数据块采用第一加密因子进行加密,以及并行地对所述序号满足第二条件的数据块采用第二加密因子进行加密。
在一些可能的实现方式中,所述序号满足第一条件包括所述序号为奇数,所述序号满足第二条件包括所述序号为偶数。
在一些可能的实现方式中,所述加密因子包括加密算法和/或加密密钥。
在一些可能的实现方式中,所述加密单元,具体用于根据预设的加密策略,利用多线程对所述多个数据块并行加密。
在一些可能的实现方式中,所述加密单元,具体用于在可信执行环境中,根据预设的加密策略对所述多个数据块并行加密。
第四方面,本申请提供了一种数据处理装置,所述装置包括:
获取单元,用于获取数据的密文;
拆分单元,用于按照预设规则将所述数据的密文分为多个密文块;
解密单元,用于根据预设的解密策略对所述多个密文块并行解密,获得所述数据,其中,所述解密策略指示对所述多个密文块中的至少两个密文块采用不同的解密因子进行解密。
在一些可能的实现方式中,所述装置还包括:确定单元;
所述确定单元,用于确定所述多个密文块的序号;
所述解密单元,具体用于对所述序号满足第一条件的密文块采用第一解密因子进行解密,以及并行地对所述序号满足第二条件的密文块采用第二解密因子进行解密。
在一些可能的实现方式中,所述序号满足第一条件包括所述序号为奇数,所述序号满足第二条件包括所述序号为偶数。
在一些可能的实现方式中,所述解密因子包括解密算法和/或解密密钥。
在一些可能的实现方式中,所述解密单元,具体用于根据预设的解密策略,利用多线程对所述多个密文块并行解密。
在一些可能的实现方式中,所述解密单元,具体用于在可信执行环境中,根据预设的解密策略对所述多个密文块并行解密。
第五方面,本申请提供了一种设备,所述设备包括处理器和存储器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以使得设备执行如第一方面或第二方面的任一种实现方式中的数据处理方法。
第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示设备执行上述第一方面或第二方面的任一种实现方式所述的数据处理方法。
第七方面,本申请提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述第一方面或第二方面的任一种实现方式所述的数据处理方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种数据处理系统的系统架构图;
图2为本申请实施例提供的一种数据处理方法的方法流程图;
图3为本申请实施例提供的一种多线程并行加密的示意图;
图4为本申请实施例提供的一种数据处理方法的方法流程图;
图5为本申请实施例提供的一种多线程并行解密的示意图;
图6为本申请实施例提供的一种数据处理装置的结构示意图;
图7为本申请实施例提供的一种数据处理装置的结构示意图;
图8为本申请实施例提供的一种第一数据处理设备的结构示意图;
图9为本申请实施例提供的一种第二数据处理设备的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
数据加密(data encryption)是指将明文形式的数据(plain text)经过加密密钥以及加密函数处理后得到该数据的密文(cipher text)的过程。举例说明,明文形式的数据通常可以表达真实的含义,例如明文形式的数据可以是“下午6点在商场门口集合”,密文可以是无意义的字符串,例如上述数据的密文可以是“789asd!@#cvb”。类似地,数据解密是指将该数据的密文经过解密密钥以及解密函数处理后得到该数据的过程。
数据加密算法是指实现数据加密的算法。根据加密过程和解密过程使用的密钥可以将数据加密算法分为对称加密算法(symmetric-key algorithm)和非对称加密算法(asymmetric key encryption algorithm)两种类型。
对称加密算法又称作对称密钥加密算法、私钥加密(private-key cryptography)算法、共享密钥加密算法。对称加密算法是指对数据进行加密和解密时,使用的加密密钥和解密密钥相同的加密算法。例如对称加密算法包括:AES、DES等。
非对称加密算法又称作公开密钥加密(public-key cryptography)算法、公钥加密算法。非对称加密算法是指对数据进行加密和解密时,使用的加密密钥和解密密钥不同的加密算法。具体地,非对称加密算法通过公钥进行数据加密,通过私钥进行数据解密。例如非对称加密算法包括:RSA、数字签名算法(digital signature algorithm,DSA)、椭圆曲线密码编码学(elliptic curves cryptography,ECC)等。
然而,待加密数据的数据量较大时,采用上述方法直接对待加密数据进行加密需要花费较长的时间,加密效率较低。同理,对该数据的密文进行解密时,也需要花费较长的时间,解密效率低。另外,采用上述数据加密算法对待加密数据进行加密得到该数据的密文后,一旦解密密钥(如私钥)被窃取,上述密文即可被破解。由此可见,利用传统的方法对数据进行加解密时,不仅加解密效率低,而且可靠性低。
有鉴于此,本申请实施例提供了一种数据处理方法。该方法通过将待处理的数据进行处理,例如进行分割处理得到多个数据块,然后根据预设的加密策略对多个数据块并行加密,获得数据的密文。进一步地,在对数据的密文进行解密时,可以将数据的密文进行处理,例如进行分割处理,得到多个密文块,然后根据预设的解密策略对多个密文块并行解密,从而从数据的密文中恢复数据。
一方面,该方法对多个数据块并行加密以及对多个密文块并行解密,提高了加解密的效率。另一方面,加密策略指示对多个数据块中的至少两个数据块采用不同的加密因子进行加密,解密策略指示对多个密文块中的至少两个密文块采用不同的解密因子进行解密,即使非法分子获得解密密钥如私钥,也无法获知加解密策略,难以对密文进行破解,提高了数据处理的可靠性,保障了数据安全性。
该方法可以由数据处理设备执行。数据处理设备可以是终端,也可以是服务器。其中,终端包括但不限于台式机、笔记本电脑、平板电脑和智能手机。服务器可以是云环境中的云服务器,例如是中心云计算集群中的中心服务器,或者是边缘云计算集群中的边缘服务器。当然,服务器也可以是本地数据中心中的服务器,所谓本地数据中心是指用户所属数据中心。还需要说明的是,服务器可以是单个服务器,也可以多个服务器形成的服务器集群。
本申请实施例提供的数据处理方法可以分为加密和解密两个阶段。数据处理方法的这两个阶段可以由同一数据处理设备执行,也可以分别由不同数据处理设备执行。为了便于理解,本申请以数据处理方法的加密阶段和解密阶段分别由不同数据处理设备,如第一数据处理设备和第二数据处理设备执行进行示例说明。
参见图1所示的数据处理系统的系统架构图。该数据处理系统100包括第一数据处理设备102和第二数据处理设备104。其中,第一数据处理设备102和第二数据处理设备104建立有通信连接。第一数据处理设备102和第二数据处理设备104可以通过该通信连接进行数据交互。
为了保障数据安全性,第一数据处理设备102和第二数据处理设备104在交互数据时,可以对数据进行加密得到数据的密文,然后向对端传输数据的密文。为了便于理解,本申请实施例以第一数据处理设备102向第二数据处理设备104发送数据进行示例说明。
具体地,第一数据处理设备102获取待处理的数据,将该待处理的数据分割为多个数据块,然后采用预设的加密策略对多个数据块并行加密,得到数据的密文。第一数据处理设备102向第二数据处理设备104发送该数据的密文。
第二数据处理设备104获取到数据的密文时,将数据的密文分割为多个密文块,然后根据预设的解密策略对多个密文块并行解密,从而获得数据。其中,预设的解密策略通常与预设的加密策略相对应。例如,预设的加密策略指示采用第一加密密钥对第一类型的数据块加密,第二加密密钥对第二类型的数据块加密时,预设的解密策略可以指示采用与上述第一加密密钥对应的第一解密密钥解密第一类型的密文块,与上述第二加密密钥对应的第二解密密钥解密第二类型的密文块。
需要说明的是,本申请实施例提供的数据处理方法具体可以以计算机程序的形式提供给用户使用。例如,第一数据处理设备102可以安装用于数据加密处理的计算机程序,通过运行上述计算机程序,以对待处理的数据加密。又例如,第二数据处理设备104可以安装用于数据解密的计算机程序,通过运行上述计算机程序,以对数据的密文解密,从而恢复数据。
为了使得本申请的技术方案更加清楚、易于理解,下面分别从第一数据处理设备102和第二数据处理设备104的角度对本申请实施例提供的数据处理方法进行详细说明。
首先,参见图2所示的数据处理方法的方法流程图,该方法包括:
S202:第一数据处理设备102获取待处理的数据。
待处理的数据可以是待加密数据,该待加密数据可以是明文形式的数据。其中,待处理的数据可以是数据量较大的数据,例如是数据量大于预设数据量的数据。该数据包括但不限于视频数据、音频数据、图像数据、工程文件数据等等。在一些实施例中,待处理的数据也可以是数据量较小的数据,例如是数据量小于预设数据量的数据。该数据可以是文本数据等等。
在一些实施例中,第一数据处理设备102可以获取存储在第一数据处理设备102本地的待处理的数据。例如,第一数据处理设备102可以向用户呈现图形用户界面(graphicaluser interface,GUI),然后用户通过GUI浏览第一数据处理设备102本地存储的数据,进而选择待处理的数据,以使第一数据处理设备102获取该待处理的数据。
在另一些实施例中,第一数据处理设备102可以接收其他设备发送的待处理的数据,从而获得该待处理的数据。例如,第一数据处理设备102可以是服务器,该服务器可以接收终端发送的数据,以便对该数据进行加密等处理过程。
上述第一数据处理设备102获取待处理的数据的方式仅仅是示意性的说明,本申请不具体限定第一数据处理设备102获取待处理的数据的方式,本领域技术人员可以根据实际需要选择合适的方式,以使第一数据处理设备102获取待处理的数据。
S204:第一数据处理设备102按照预设规则将待处理的数据分为多个数据块。
具体地,第一数据处理设备102可以对待处理的数据进行处理,例如分割处理得到多个数据块,以对多个数据块并行处理,从而提高对待处理的数据的处理效率。
第一数据处理设备102可以采用多种方式将待处理的数据分为多个数据块,下面分别介绍。
第一种:第一数据处理设备102根据预先配置的数据块的个数,将待处理的数据分为多个数据块。
第一数据处理设备102根据预先配置的数据块的个数,将待处理的数据进行平均等分。在一些示例中,预先配置的数据块的个数为100个,当待处理的数据的数据量为100M时,第一数据处理设备102将待处理的数据平均分为100个数据块,则每个数据块的数据量为1M。当然,在一些实现方式中,第一数据处理设备102也可以将待处理的数据不进行平均等分。
其中,数据块的个数可以是用户通过第一数据处理设备102提供的GUI预先配置。在一些情况中,当用户没有对数据块的个数预先配置时,第一数据处理设备102可以根据默认的数据块的个数如50个,对待处理的数据进行分割处理。
第二种:第一数据处理设备102根据预先配置的数据块的数据量,将待处理的数据分为多个数据块。
在一些实施例中,若待处理的数据的数据量为预先配置的数据块的数据量的整数倍时,第一数据处理设备102根据预先配置的数据块的数据量,将待处理的数据进行平均等分,得到多个数据块。在一些示例中,预先配置的数据块的数据量为10M,待处理的数据的数据量为100M,即100M为10M的10倍,第一数据处理设备102将待处理的数据平均分为10个数据块,每个数据块的数据量为10M。
在另一些实施例中,若待处理的数据的数据量与预先配置的数据块的数据量不是整数倍数的关系时,第一数据处理设备102先将待处理的数据分为两部分,第一部分的数据量为预先配置的数据块的数据量的整数倍,第二部分的数据量小于预先配置的数据块的数据量。然后第一数据处理设备102可以采用上述实施例中的方式对第一部分平均分为多个数据块,将第二部分单独作为一个数据块,或者是对第二部分进行填充,以使填充后的第二部分的数据量与预先配置的数据块的数据量相等,如此可以得到数据量大小相等的数据块。
在一些示例中,预先配置的数据块的数据量为10M,待处理的数据的数据量为98M,第一数据处理设备102可以将该待处理的数据分为两部分,第一部分的数据量为90M,第二部分的数据量为8M。然后第一数据处理设备102将第一部分分为9个数据块,对第二部分进行填充,以使填充后的第二部分为10M,作为一个数据块。进而第一数据处理设备102将该待处理的数据分为10个数据块。其中,第一数据处理设备102可以根据用户预先配置的填充内容,对第二部分进行填充,也可以根据默认的填充内容对第二部分进行填充。
本申请不限定第一数据处理设备102分割待处理的数据的方式,本领域技术人员可以根据实际需要选择分割待处理的数据的方式。
第一数据处理设备102将待处理的数据分割为多个数据块后,每个数据块的数据量均小于原待处理的数据的数据量。并且,第一数据处理设备102能够并行处理多个数据块,大幅缩短了数据处理的时间,提高了数据处理的效率。
在一些可能的实现方式中,第一数据处理设备102还可以确定每个数据块的序号,如此第一数据处理设备102根据该序号对多个数据块进行处理。其中,序号指具有排列顺序的标号,序号可以为数字和字母中的任一种或者两种的组合。
为了便于理解,以序号为数字为例进行介绍。在一些示例中,第一数据处理设备102将待处理的数据分割为第一数据块、第二数据块和第三数据块。然后第一数据处理设备102确定第一数据块的序号为“0001”,第二数据块的序号为“0002”,第三数据块的序号为“0003”。在一些实现方式中,序号也可以为字母。例如,第一数据处理设备102确定第一数据块的序号为“a”,第二数据块的序号为“b”,第三数据块的序号为“c”。其中,字母的排列顺序可以依据该字母在字母表中的先后顺序确定,例如字母“a”的排序为第一,字母“b”的排序为第二。
在另一些实现方式中,第一数据处理设备102也可以采用数字和字母的组合来确定每个数据块的序号。本申请不限定第一数据处理设备102确定每个数据块的序号的方式,本领域技术人员可以根据实际需要选择合适的方式,以使第一数据处理设备102确定每个数据块的序号。
在一些实现方式中,第一数据处理设备102可以将数据块转换为字节数组,即通过字节数组的形式来表征该数据块。当然,第一数据处理设备102也可以按照16进制或者其他进制对数据块的数据进行转换,以便基于转换后的数据进行数据处理。
S206:第一数据处理设备102根据预设的加密策略对多个数据块并行加密获得数据的密文。
加密策略指示对多个数据块中的至少两个数据块采用不同的加密因子进行加密。具体地,第一数据处理设备102对多个数据块中的至少两个数据块采用不同的加密因子并行加密。其中,加密因子是指实现数据加密的因素。加密因子可以包括加密密钥、加密算法(例如是加密算法中的加密函数)。不同的加密因子可以是不同的加密算法、也可以是不同的加密密钥、或者是不同的加密算法和不同的加密密钥。
为了便于理解,下面以第一数据处理设备102采用不同的加密算法(例如第一加密算法和第二加密算法)以及不同的加密密钥(例如第一加密密钥和第二加密密钥)进行加密为例,进行介绍。
在一些实现方式中,加密算法和第二加密算法可以均为对称加密算法。例如,第一加密算法为AES,第二加密算法为DES。
具体地,第一数据处理设备102通过AES的加密函数和第一加密密钥对部分数据块进行加密得到该数据块的密文,具体参见如下公式:
C1=E1(K1,P1) (1)
其中,E1(K1,P2)为AES的加密函数,K1为第一加密密钥,P1为数据块,C1为上述数据块的密文。
第一数据处理设备102通过DES的加密函数和第二加密密钥对另一部分数据块进行加密得到该数据块的密文,具体参见如下公式:
C2=E2(K2,P2) (2)
其中,E2(K2,P2)为DES的加密函数,K2为第一加密密钥,P2为数据块,C2为上述数据块的密文。
在另一些实现方式中,第一加密算法和第二加密算法也可以均为非对称加密算法。例如,第一加密算法可以为RSA,第二加密算法可以为DSA。第一数据处理设备102采用RSA对一部分数据块加密,采用DSA对另一部分数据块加密,如此可以进一步提高加密的可靠性。
以上仅仅是以不同的加密算法和不同的加密密钥为例进行介绍。在一些实现方式中,第一数据处理设备102也可以采用相同的加密算法,不同的加密密钥对多个数据块进行加密,或者是第一数据处理设备102可以采用相同的加密密钥,不同的加密算法对多个数据块进行加密。本申请对此不进行限定。
在一些可能的实现方式中,第一数据处理设备102可以确定多个数据块的序号。相应地,第一数据处理设备102可以根据每个数据块的序号,确定对该数据块所采用的加密因子,以对该数据块进行加密得到密文块。
具体地,第一数据处理设备102可以基于数据块的序号,对数据块分类。例如,第一数据处理设备102将序号满足第一条件的数据块分为第一类型,序号满足第二条件的数据块分为第二类型。以序号为数字为例,序号满足第一条件可以是序号为奇数,序号满足第二条件可以是序号为偶数。然后,第一数据处理设备102采用第一加密因子对第一类型的数据块加密,采用第二加密因子对第二类型的数据块加密。
在一些示例中,第一数据处理设备102将待处理的数据分为三个数据块,并且第一数据块的序号为“0001”、第二数据块的序号为“0002”,第三数据块的序号为“0003”。第一数据处理设备102对第一数据块和第三数据块采用第一加密因子进行加密,对第二数据块采用第二加密因子进行加密。
第一数据处理设备102可以利用多线程的方式对多个数据块并行加密。多线程可以包括第一线程、第二线程和第三线程。第一数据处理设备102在执行加密任务时,第一数据处理设备102可以同时利用第一线程、第二线程和第三线程分别对第一数据块、第二数据块和第三数据块并行加密。如此,第一数据处理设备102能够更快速且高效率地加密数据块。
如下表1至表3,分别示出了第一数据处理设备102对不同类型的待处理的数据并行加密与常规加密的区别。
表1:第一数据处理设备102对视频进行加密
其中,无法测试表示第一数据处理设备102采用常规的加密方式对数据量较大的文件进行加密时,加密所需要的时间过长。第一数据处理设备102对视频文件进行加密时,视频文件的视频内容不同,加密所需要的时间可能会不同。从上表1中可以看出,第一数据处理设备102采用常规的加密方式时,视频文件越大,加密所需要的时间越长,而采用本申请实施例提供的数据处理方法,对视频文件进行拆分后,并行加密,视频文件变大后,加密所需要的时间不会发生显著变化。可见,本申请实施例提供的数据处理方法,提高了对视频文件的加密效率。
表2:第一数据处理设备102对照片进行加密
从上表2中可以看出,第一数据处理设备102采用常规的加密方式时,照片文件越大,加密所需要的时间越长,而采用本申请实施例提供的数据处理方法,对照片文件进行拆分后,并行加密,照片文件变大后,加密所需要的时间不会发生显著变化。可见,本申请实施例提供的数据处理方法,提高了对照片文件的加密效率。
表3:第一数据处理设备102对文本进行加密
从上表3中可以看出,第一数据处理设备102采用常规的加密方式时,文本文件越大,加密所需要的时间越长,而采用本申请实施例提供的数据处理方法,对文本文件进行拆分后,并行加密,文本文件变大后,加密所需要的时间不会发生显著变化。可见,本申请实施例提供的数据处理方法,提高了对文本文件的加密效率。
以上表1至表3仅仅是以第一数据处理设备102对视频文件、照片文件和文本文件加密为例进行说明,对于其他类型的文件,采用本申请实施例提供的数据处理方法,也能够提高加密效率。
为了使得本申请的技术方案更加清楚、易于理解,下面结合图3,对第一数据处理设备102对数据块多线程加密的过程进行介绍。
如图3所示,第一数据处理设备102利用N个线程对N个数据块并行加密。其中,第一数据处理设备102采用AES的加密函数和第一加密密钥对序号为“0001”的数据块进行加密,采用DES的加密函数和第二加密密钥对序号为“0002”的数据块进行加密,以及采用AES的加密函数和第三加密密钥对序号为“0003”的数据块进行加密。
第一数据处理设备102利用多线程的方式执行加密任务时,能够同时对多个数据块并行加密,得到多个密文块。如此极大地提高了加密效率,缩短了第一数据处理设备102对数据块加密所需要的时间。进一步地,对于不同的数据块,第一数据处理设备102采用了不同的加密密钥,提高了加密的可靠性,保障了数据安全性。
在一些实现方式中,第一数据处理设备102还可以根据数据块的序号确定与该数据块对应的密文块的序号。如图3所示,第一数据处理设备102将数据块的序号作为与该数据块对应的密文块的序号。第一数据处理设备102可以根据数据块的序号(或者是密文块的序号)将多个密文块进行拼接,进而得到数据的密文。如此,第一数据处理设备102能够对待处理的数据加密得到数据的密文。
在一些实现方式中,第一数据处理设备102可以在可信执行环境(trustedexecution environment,TEE)中执行对数据块加密的任务。其中,TEE是指一种安全执行环境,该环境能够进一步保障多个数据块的安全性。如此,第一数据处理设备102在TEE中执行加密任务时,能够减少在对数据块加密的过程中被非法分子恶意攻击的情况。
基于上述内容描述,本申请实施例提供了一种数据处理方法。一方面,该方法将待处理的数据分为多个数据块,对多个数据块并行处理,缩短了对待处理的数据进行处理所需要的时间,提高了数据处理的效率。另一方面,该方法对多个数据块中的至少两个数据块采用不同的加密因子进行加密,即使非法分子获得解密密钥如私钥,也无法获知加解密策略,难以对密文进行破解,提高了数据处理的可靠性。
以上从第一数据处理设备102的角度介绍了本申请实施例的数据处理方法,下面从第二数据处理设备104的角度介绍本申请实施例提供的数据处理方法。
下面参见图4所示的数据处理方法的流程图,该方法包括:
S402:第二数据处理设备104获取数据的密文。
数据的密文可以是第一数据处理设备102对待处理的数据加密后得到的密文。
在一些实施例中,第二数据处理设备104可以接收其他设备例如是第一数据处理设备102发送的密文,从而获得该密文。在另一些实施例中,第二数据处理设备104可以获取存储在第二数据处理设备104本地的密文。例如,第二数据处理设备104可以向用户呈现GUI,然后用户通过GUI浏览第二数据处理设备104本地存储的密文,进而选择数据的密文,以使第二数据处理设备104获取该密文。
上述第二数据处理设备104获取密文的方式仅仅是示意性的说明,本申请不具体限定第二数据处理设备104获取密文的方式,本领域技术人员可以根据实际需要选择合适的方式,以使第二数据处理设备104获取密文。
S404:第二数据处理设备104按照预设规则将数据的密文分为多个密文块。
具体地,第二数据处理设备104可以对密文进行处理,例如分割处理得到多个密文块,以对多个密文块并行处理。
在一些可能的实现方式中,数据的密文可以携带分割标记。例如,第一数据处理设备102在将多个密文块拼接得到数据的密文时,可以在密文块后增加分割标识位,用于指示第二数据处理设备104从该位置进行分割。如此,第二数据处理设备104可以读取上述分割标识位,从而将数据的密文分为多个密文块。
在另一些可能的实现方式中,第二数据处理设备104可以获取密文对应的分割提示信息。该提示信息具体可以是第一数据处理设备102在拼接密文块时,记录的各密文块的长度。基于此,第二数据处理设备104可以根据各密文块的长度,分割数据的密文,得到多个密文块。
第二数据处理设备104将密文分割为多个密文块后,每个密文块的数据量均小于原密文的数据量。并且,第二数据处理设备104能够并行处理多个密文块,大幅缩短了数据处理的时间。
在一些可能的实现方式中,第二数据处理设备104还可以确定每个密文块的序号,以便第二数据处理设备104根据该序号对多个密文块进行处理。其中,序号指具有排列顺序的标号,序号可以为数字和字母中的任一种或者两种的组合。
为了便于理解,以序号为数字为例进行介绍。第二数据处理设备104将密文分割为第一密文块、第二密文块和第三密文块。然后第二数据处理设备104确定第一密文块的序号为“0001”,第二密文块的序号为“0002”,第三密文块的序号为“0003”。在一些实现方式中,序号也可以为字母。例如,第二数据处理设备104确定第二密文块的序号为“a”,第二密文块的序号为“b”,第三密文块的序号为“c”。其中,字母的排列顺序可以依据该字母在字母表中的先后顺序确定,例如字母“a”的排序为第一,字母“b”的排序为第二。
在另一些实现方式中,第二数据处理设备104也可以采用数字和字母的组合来确定每个密文块的序号。本申请不限定第二数据处理设备104确定每个密文块的序号的方式,本领域技术人员可以根据实际需要选择合适的方式,以使第二数据处理设备104确定每个密文块的序号。
在一些实现方式中,第二数据处理设备104可以将密文块转换为字节数组,即通过字节数组的形式来表征该密文块。当然,第二数据处理设备104也可以按照16进制或者其他进制对密文块的数据进行转换,以便于基于转换后的数据进行数据处理。
S406:第二数据处理设备104根据预设的解密策略对多个密文块并行解密获得数据。
解密策略指示对多个密文块中的至少两个密文块采用不同的解密因子进行解密。具体地,第二数据处理设备104对多个密文块中的至少两个密文块采用不同的解密因子并行解密。其中,解密因子是指实现数据解密的因素。解密因子可以包括解密密钥、解密算法(例如是解密算法中的解密函数)。不同的解密因子可以是不同的解密算法、也可以是不同的解密密钥、或者不同的解密算法和不同的解密密钥。
为了便于理解,与第一数据处理设备102对数据块进行加密的方式相对应,第二数据处理设备104采用不同的解密算法以及不同的解密密钥对密文块进行解密。
在一些实施例中,当第一数据处理设备102采用对称加密算法如AES和DES对数据块进行加密时,第二数据处理设备104可以采用与该第一加密算法对应的第一解密算法,以及与第二加密算法对应的第二解密算法对密文块进行解密。
在一些示例中,第二数据处理设备104可以通过AES的解密函数和第一解密密钥对部分密文块解密,得到明文形式的数据块,具体如下所示:
P1=D1(K1,C1) (3)
其中,D1(K1,C1)为AES的解密函数,K1为第一解密密钥,P1为明文形式的数据块,C1为部分密文块。
第二数据处理设备104可以通过DES的解密函数和第二解密密钥对另一部分密文块解密,得到明文形式的数据块,具体如下所示:
P2=D2(K2,C2) (4)
其中,D2(K2,C2)为DES的解密函数,K2为第二解密密钥,P2为明文形式的数据块,C2为另一部分密文块。
需要说明的是,AES、DES为对称加密算法,因此,第一解密密钥和第一加密密钥相同,第二解密密钥和第二加密密钥相同。
在另一些实现方式中,第一数据处理设备102采用非对称加密算法,例如RSA和DSA时,第二数据处理设备104采用RSA和DSA对第一数据处理设备102加密得到的密文块进行解密。
需要说明的是,本申请不限定第二数据处理设备104对密文块解密所采用的解密算法,第二数据处理设备104所采用的解密算法与上述第一数据处理设备102对数据块进行加密的加密算法相对应。由此,本领域技术人员可以根据第一数据处理设备102对数据块加密所采用的加密算法选择第二数据处理设备104对密文块解密所采用的解密算法,以对密文块解密。
在一些实现方式中,第二数据处理设备104可以根据每个密文块的序号,确定对该密文块所采用的解密因子,以对该密文块进行解密得到数据块。具体地,第二数据处理设备104可以基于密文块的序号,对密文块分类。例如,第二数据处理设备104将序号满足第一条件的密文块分为第一类型,序号满足第二条件的密文块分为第二类型。以序号为数字为例,序号满足第一条件可以是序号为奇数,序号满足第二条件可以是序号为偶数。如此,第一数据处理设备102采用第一加密因子对第一类型的数据块加密,第二加密因子对第二类型的数据块加密时,第二数据处理设备104采用与上述第一加密因子对应的第一解密因子解密第一类型的密文块,与上述第二加密因子对应的第二解密因子解密第二类型的密文块。
在一些示例中,第二数据处理设备104将密文分为三个密文块,并且第一密文块的序号为“0001”、第二密文块的序号为“0002”,第三密文块的序号为“0003”。第二数据处理设备104对第一密文块和第三密文块采用第一解密因子进行解密,对第二密文块采用第二解密因子进行解密。其中,第一解密因子与第一加密因子对应,第二解密因子与第二加密因子对应。
第二数据处理设备104可以利用多线程的方式对多个密文块并行解密。例如多线程可以包括第一线程、第二线程和第三线程。第二数据处理设备104在执行解密任务时,第二数据处理设备104可以同时利用第一线程、第二线程和第三线程分别对第一密文块、第二密文块和第三密文块并行解密。如此,第二数据处理设备104能够更快速且高效率地解密密文块。
为了使得本申请的技术方案更加清楚、易于理解,下面结合图5,对第二数据处理设备104通过多线程对多个密文块并行解密的过程进行介绍。
如图5所示,第二数据处理设备104利用N个线程对N个密文块并行解密。具体地,第二数据处理设备104采用AES的解密函数和第一解密密钥对序号为“0001”的密文块进行解密,采用DES的解密函数和第二解密密钥对序号为“0002”的密文块进行解密,以及采用AES的解密函数和第三解密密钥对序号为“0003”的密文块进行解密等等。第二数据处理设备104利用多线程的方式执行解密任务时,能够同时对多个密文块并行解密,得到多个数据块。如此极大地提高了解密效率,缩短了第二数据处理设备104对密文块解密所需要的时间。
在一些实现方式中,第二数据处理设备104还可以根据密文块的序号确定与该密文块对应的数据块的序号。如图5所示,第二数据处理设备104将密文块的序号作为与该密文块对应的数据块的序号。第二数据处理设备104可以根据密文块的序号(或者是数据块的序号)将多个数据块进行拼接,进而得到原数据。如此,第二数据处理设备104能够对密文解密得到原数据。
在一些实现方式中,第二数据处理设备104可以在TEE中执行对密文块解密的任务。其中,TEE是指一种安全执行环境,第二数据处理设备104在TEE中执行解密任务时,能够减少解密后得到的数据块被非法分子窃取的情况。
本申请提供了一种数据处理方法。一方面,该方法将密文分为多个密文块,然后对多个密文块并行处理,如此提高了数据处理的效率。另一方面,该方法对多个密文块中的至少两个密文块采用不同的解密因子进行解密。该方法与上述第一数据处理设备102执行的数据处理方法的加密阶段相对应,能够对上述第一数据处理设备102进行加密后得到的密文进行解密,从而实现在第一数据处理设备102和第二数据处理设备104之间进行安全可靠的交互。
上文结合图1至图5对本申请实施例提供的数据处理方法进行了详细介绍,下面将结合附图对本申请实施例提供的装置、设备进行介绍。
参见图6所示的数据处理装置的结构示意图,该装置600包括:
获取单元602,用于获取待处理的数据;
拆分单元604,用于按照预设规则将所述待处理的数据分为多个数据块;
加密单元606,用于根据预设的加密策略对所述多个数据块并行加密,获得所述数据的密文,其中,所述加密策略指示对所述多个数据块中的至少两个数据块采用不同的加密因子进行加密。
在一些可能的实现方式中,所述装置还包括确定单元608;
所述确定单元608,用于确定所述多个数据块的序号;
所述加密单元606,具体用于对所述序号满足第一条件的数据块采用第一加密因子进行加密,以及并行地对所述序号满足第二条件的数据块采用第二加密因子进行加密。
在一些可能的实现方式中,所述序号满足第一条件包括所述序号为奇数,所述序号满足第二条件包括所述序号为偶数。
在一些可能的实现方式中,所述加密因子包括加密算法和/或加密密钥。
在一些可能的实现方式中,所述加密单元606,具体用于根据预设的加密策略,利用多线程对所述多个数据块并行加密。
在一些可能的实现方式中,所述加密单元606,具体用于在可信执行环境中,根据预设的加密策略对所述多个数据块并行加密。
根据本申请实施例的数据处理装置600可对应于执行本申请实施例中描述的方法,并且数据处理装置600的各个模块/单元的上述和其它操作和/或功能为了实现图2所示实施例中的方法的流程,为了简洁,在此不再赘述。
参见图7所示的数据处理装置的结构示意图,该装置700包括:
获取单元702,用于获取数据的密文;
拆分单元704,用于按照预设规则将所述数据的密文分为多个密文块;
解密单元706,用于根据预设的解密策略对所述多个密文块并行解密,获得所述数据,其中,所述解密策略指示对所述多个密文块中的至少两个密文块采用不同的解密因子进行解密。
在一些可能的实现方式中,所述装置还包括:确定单元708;
所述确定单元708,用于确定所述多个密文块的序号;
所述解密单元706,具体用于对所述序号满足第一条件的密文块采用第一解密因子进行解密,以及并行地对所述序号满足第二条件的密文块采用第二解密因子进行解密。
在一些可能的实现方式中,所述序号满足第一条件包括所述序号为奇数,所述序号满足第二条件包括所述序号为偶数。
在一些可能的实现方式中,所述解密因子包括解密算法和/或解密密钥。
在一些可能的实现方式中,所述解密单元706,具体用于根据预设的解密策略,利用多线程对所述多个密文块并行解密。
在一些可能的实现方式中,所述解密单元706,具体用于在可信执行环境中,根据预设的解密策略对所述多个密文块并行解密。
根据本申请实施例的数据处理装置700可对应于执行本申请实施例中描述的方法,并且数据处理装置700的各个模块/单元的上述和其它操作和/或功能为了实现图4所示实施例中的方法的流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种数据处理设备。该数据处理设备可以是第一数据处理设备102,该数据处理设备用于实现如图6所示实施例中数据处理装置600的功能。下面以第一数据处理设备102为例,对数据处理设备的硬件架构进行说明。
图8提供了一种第一数据处理设备的结构示意图,如图8所示,第一数据处理设备102包括总线801、处理器802、通信接口803和存储器804。处理器802、存储器804和通信接口803之间通过总线801通信。
总线801可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器802可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
通信接口803用于和外部通信。例如通信接口803可以用于和第二数据处理设备104通信。通信接口用于向第二数据处理设备104发送加密后的密文,以便第二数据处理设备104对该密文进行解密。
存储器804可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器804还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard diskdrive,HDD)或固态驱动器(solid state drive,SSD)。
存储器804中存储有可执行代码,处理器802执行该可执行代码以执行前述图2所示的实施例中数据处理方法。
具体地,在实现图6所示实施例的情况下,且图6实施例中所描述的数据处理装置600的各模块或单元为通过软件实现的情况下,执行图6中的各模块/单元功能所需的软件或程序代码可以部分或全部存储在存储器804中。处理器802执行存储器804中存储的各单元对应的程序代码,执行前述图2所示的实施例中数据处理方法。
本申请实施例还提供了一种数据处理设备。该数据处理设备可以是第二数据处理设备104,该数据处理设备用于实现如图7所示实施例中数据处理装置700的功能。下面以第二数据处理设备104为例,对数据处理设备的硬件架构进行说明。
图9提供了一种第一数据处理设备的结构示意图,如图9所示,第二数据处理设备104包括总线901、处理器902、通信接口903和存储器904。处理器902、存储器904和通信接口903之间通过总线901通信。
通信接口903用于和外部通信。例如通信接口903可以用于和第一数据处理设备102通信。通信接口用于接收第一数据处理设备102发送加密后的密文,以便第二数据处理设备104对该密文进行解密。
存储器904中存储有可执行代码,处理器902执行该可执行代码以执行前述图4所示的实施例中数据处理方法。
具体地,在实现图7所示实施例的情况下,且图7实施例中所描述的数据处理装置700的各模块或单元为通过软件实现的情况下,执行图7中的各模块/单元功能所需的软件或程序代码可以部分或全部存储在存储器904中。处理器902执行存储器904中存储的各单元对应的程序代码,执行前述图4所示的实施例中数据处理方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用于数据处理装置600或数据处理装置700的数据处理方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机指令。在计算设备上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。
所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。
所述计算机程序产品被计算机执行时,所述计算机执行本申请实施例中数据处理方法的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前本申请实施例中数据处理方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
- 数据处理方法、数据传输方法、数据接收方法、设备、代码本、计算机程序产品以及计算机程序分发介质
- 数据处理方法、数据传输方法、数据接收方法、设备、代码本、计算机程序产品以及计算机程序分发介质