数据加密方法、数据解密方法及装置与流程

文档序号:12692009阅读:297来源:国知局
数据加密方法、数据解密方法及装置与流程

本发明实施例涉及计算机领域,特别涉及一种数据加密方法、数据解密方法及装置。



背景技术:

杀毒软件通过杀毒引擎检测文件的特征信息与病毒库中存储的特征信息是否匹配,来检测文件是否为病毒,当文件的特征信息与病毒库中的特征信息匹配时,确定文件是病毒。其中,杀毒软件包括杀毒引擎和病毒库。若病毒库被恶意程序或者木马获取,并对其中的特征信息、病毒名称等数据进行篡改,则可能导致杀毒软件无法检测出病毒文件的问题。因此,对病毒库进行加密以保证病毒库不被恶意程序或者木马获取到,是保证杀毒软件查毒的准确性的关键部分。

相关技术中,服务器使用预设的加密算法对病毒库整体进行加密。当终端中的杀毒软件通过杀毒引擎根据病毒库查毒时,杀毒引擎使用与预设的加密算法相对应的解密算法解密该病毒库,使用解密后的病毒库中的数据检测文件是否为病毒。

由于服务器使用单一的加密算法对整个病毒库进行加密,恶意人员破解该加密算法的难度较低,加密后的病毒库的安全性不高。



技术实现要素:

为了解决现有技术由于服务器使用单一的加密算法对整个病毒库进行加密,导致加密后的病毒库的破解难度较低,数据安全性不高的问题,本发明实施例提供了一种数据加密方法、数据解密方法及装置。所述技术方案如下:

第一方面,提供了一种数据加密方法,所述方法包括:

获取待加密的目标数据,所述目标数据包括至少两条子数据;

获取至少两种加密算法;

对于所述目标数据中的每条子数据,从所述至少两种加密算法中选择出目标加密算法对所述子数据进行加密,得到加密后的目标数据。

第二方面,提供了一种数据解密方法,所述方法包括:

获取加密后的目标数据,所述加密后的目标数据包括至少两条加密后的子数据,所述至少两条加密后的子数据中存在至少两条所述加密后的子数据使用的加密算法不同;

从所述加密后的目标数据中确定待解密的所述加密后的子数据;

获取所述加密后的子数据对应的解密算法;

根据所述解密算法解密所述加密后的子数据。

第三方面,提供了一种数据加密装置,所述装置包括:

第一获取模块,用于获取待加密的目标数据,所述目标数据包括至少两条子数据;

第二获取模块,用于获取至少两种加密算法;

加密模块,用于对于所述第一获取模块获取到的所述目标数据中的每条子数据,从所述第二获取单元获取到的所述至少两种加密算法中选择出目标加密算法对所述子数据进行加密,得到加密后的目标数据。

第四方面,提供了一种数据解密装置,所述装置包括:

第一获取模块,用于获取加密后的目标数据,所述加密后的目标数据包括至少两条加密后的子数据,所述至少两条加密后的子数据中存在至少两条所述加密后的子数据使用的加密算法不同;

确定模块,用于从所述第一获取模块获取到的所述加密后的目标数据中确定待解密的所述加密后的子数据;

第二获取模块,用于获取所述确定模块确定出的所述加密后的子数据对应的解密算法;

解密模块,用于根据所述第二获取模块获取到的所述解密算法解密所述加密后的子数据。

本发明实施例提供的技术方案带来的有益效果包括:

通过至少两种类型的加密算法对目标数据中不同的子数据进行加密,得到加密后的目标数据;解决了服务器在使用单一的加密算法将目标数据作为一个整体进行加密时,恶意人员破解加密后的目标数据的难度较低,加密后的目标数据的安全性不高的问题;由于目标数据是通过至少两种加密算法进行加密的,恶意人员在破解加密后的目标数据时,需要破解至少两种加密算法,因此,提高了恶意人员破解加密后的目标数据的难度,提高了加密后的目标数据的安全性。

附图说明

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

图1是本发明一个实施例提供的数据处理系统的结构示意图;

图2A是本发明一个实施例提供的数据处理方法的流程图;

图2B是本发明一个实施例提供的一种数据加密方法的示意图;

图2C是本发明一个实施例提供的另一种数据加密方法的示意图;

图2D是本发明一个实施例提供的确定待解密的加密后的子数据的方法的示意图;

图3A是本发明一个实施例提供的获取加密算法的方法的流程图;

图3B是本发明一个实施例提供的加解密算法集合的示意图;

图4A是本发明一个实施例提供的通过加密算法对目标数据中的子数据进行加密的方法的流程图;

图4B是本发明一个实施例提供的数据加密方法的示意图;

图5A是本发明一个实施例提供的获取加密后的子数据对应的解密算法的方法的流程图;

图5B是本发明一个实施例提供的数据解密方法的示意图;

图6是本发明一个实施例提供的数据处理方法的示意图;

图7是本发明一个实施例提供的数据加密装置的框图;

图8是本发明一个实施例提供的数据解密装置的框图;

图9是本发明一个实施例提供的服务器的结构示意图;

图10是本发明一个实施例提供的终端的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

首先对本文涉及的若干个名词进行介绍。

杀毒软件(也称:反病毒软件或防毒软件):是指用于消除终端中的病毒、木马等恶意程序的软件。杀毒软件至少包括杀毒引擎和病毒库。

杀毒引擎:是一段程序,该段程序用于检测和发现恶意程序,比如:tav杀毒引擎。

病毒库:是指已经发现的恶意程序的标本,用于供杀毒引擎在检测和发现恶意程序时使用。病毒库至少包括病毒名库和特征信息库,其中,病毒名库包括病毒的病毒名和该病毒名对应的病毒ID(Identity,身份标识号码),请参考表一所示的病毒名库,其中,头信息用于指示病毒名库。特征信息库包括病毒的特征信息和该特征信息对应的病毒ID,请参考表二所示的特征信息库,其中,头信息用于指示特征信息库。

表一:

表二:

目标数据:是指需要进行加密保护的数据。目标数据包括:病毒库中特征信息和病毒名称、聊天记录、通话记录、联系人、收藏记录和相册中的至少一种。当然,目标数据还可以包括其它类型的数据,本实施例在此不再一一列举。

加密算法:是指用于加密目标数据的算法。加密算法包括加密模板和密钥,比如:加密算法为:目标数据异或密钥1。

解密算法:是指用于解密加密后的目标数据的算法。解密算法存在对应的加密算法。解密算法包括解密模板和密钥,比如:解密算法为:加密后的目标数据异或密钥1。

请参考图1,其示出了本发明一个实施例提供的数据处理系统的结构示意图。该系统包括服务器110和终端120。

服务器110可以是单独的一个服务器,也可以是至少一个服务器集群,本实施例对此不作限定。

服务器110用于对目标数据进行加密,并将加密后的目标数据通过通信连接发送给终端110。

服务器110通过无线网络方式或者有线网络方式与终端120建立通信连接。

终端120包括手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等,本实施例对此不作限定。

终端120通过通信连接接收服务器110发送的加密后的目标数据,并在使用该目标数据时,对目标数据进行解密。可选地,当加密后的目标数据包括病毒库中加密后的特征信息和加密后的病毒名称中的至少一种时,终端120中安装有用于检测文件是否为病毒的杀毒软件,该杀毒软件用于通过杀毒引擎对加密后的目标数据中的待解密的子数据进行解密,并根据解密后的子数据检测文件是否为病毒。

需要补充说明的是,本实施例仅以终端120的数量为一个为例进行说明,在实际实现时,终端120的数量可以为多个,本实施例对此不作限定。

可选地,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(HyperText Mark-up Language,HTML)、可扩展标记语言(Extensible Markup Language,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Trassport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet Protocol Security,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。

请参考图2A,其示出了本发明一个实施例提供的数据处理方法的流程图。该方法用于图1所示的数据处理系统中,该方法可以包括以下几个步骤:

步骤201,服务器获取待加密的目标数据。

目标数据是指需要进行加密保护的数据,通常目标数据包括至少两条子数据。子数据包括特征信息库中特征信息和病毒名库中的病毒名称中的至少一种。

可选地,目标数据中的至少两条子数据的类型的可以相同,比如:该至少两条子数据均为病毒名称;或者,至少两条子数据的类型的也可以不同,比如:该至少两条子数据包括特征信息和病毒名称两种类型,本实施例对此不作限定。

服务器获取到的目标数据可以为开发人员输入的,也可以是其它终端发送的,本实施例对此不作限定。

步骤202,服务器获取至少两种加密算法。

本实施例通过使用至少两种加密算法对目标数据进行加密,提高了恶意人员破解加密后的目标数据的难度,从而提高了加密后的目标数据的安全性。

可选地,步骤202可以在步骤201之前执行,也可以在步骤201之后执行,还可以和步骤201同时执行,本实施例对此不作限定。

步骤203,对于目标数据中的每条子数据,服务器从至少两种加密算法中选择目标加密算法对子数据进行加密,得到加密后的目标数据。

服务器从至少两种加密算法中选择目标加密算法对子数据进行加密包括但不限于以下几种方式。

第一种方式,对于不同的子数据,服务器使用不同的目标加密算法进行加密。此时,子数据与目标加密算法一一对应。

请参考图2B,假设目标数据为上表一所示的病毒库中的病毒名库,子数据为病毒名库中的病毒名1、病毒名2和病毒名3。根据图2B可知,服务器通过加密算法1加密病毒名1得到加密后的病毒名1;通过加密算法2加密病毒名2得到加密后的病毒名2;通过加密算法3加密病毒名3得到加密后的病毒名3,由此,服务器得到的加密后的目标数据中的不同的加密后的子数据之间使用的加密算法不同。

第二种方式,对于目标数据中的部分子数据,服务器使用相同的第一目标加密算法进行加密;对于目标数据中的不同的剩余子数据,服务器使用不同的第二目标加密算法进行加密,得到加密后的目标数据。

其中,部分子数据的数量为至少两条,剩余子数据的数量为至少一条。第一目标加密算法与第二目标加密算法不同。

请参考图2C,假设目标数据为表一所示的病毒库中的病毒名库,子数据为病毒名库中的病毒名1、病毒名2和病毒名3。根据图2C可知,服务器通过加密算法1加密病毒名1得到加密后的病毒名1;通过加密算法1加密病毒名2得到加密后的病毒名2;通过加密算法3加密病毒名3得到加密后的病毒名3,由此,服务器得到的加密后的目标数据中既存在至少两条加密后的子数据使用的加密算法不同,比如:加密后的病毒名1和加密后的病毒名3,又存在至少两条加密后的子数据使用的加密算法相同,比如:加密后的病毒名1和加密后的病毒名2。

可选地,服务器定期地将加密后的目标数据发送至终端。

步骤204,终端获取加密后的目标数据。

加密后的目标数据可以是服务器发送的,也可以是终端中自行加密后保存的,本实施例对此不作限定。终端获取到的目标数据包括至少两条加密后的子数据,且该至少两条加密后的子数据中存在至少两条加密后的子数据使用的加密算法不同。

步骤205,终端从加密后的目标数据中确定待解密的加密后的子数据。

由于终端在使用目标数据时,可能不需要使用该目标数据中的所有子数据,比如:杀毒软件通过病毒库查找病毒文件的病毒名时,仅需要对病毒库中具有该病毒文件的特征信息的病毒对应的病毒名进行解密,以获取该病毒名,因此,终端通过确定待解密的加密后的子数据,对该加密后的子数据进行解密,使得终端的内存中仅存在该终端所需使用的解密后的子数据,其它加密后的子数据仍然保持加密状态,恶意人员不会在终端使用目标数据的过程中,获取到该目标数据包括的全部子数据,提高了其它子数据的安全性。

可选地,当加密后的目标数据为病毒库中加密后的病毒名称时,终端从加密后的目标数据中确定待解密的加密后的子数据,包括:杀毒引擎将文件的特征信息与特征信息库中的特征信息进行匹配;当特征信息库中存在一条特征信息与该文件的特征信息相匹配时,从该特征信息库中获取该特征信息对应的病毒ID;根据病毒名库中病毒ID与病毒名之间的对应关系,将该病毒ID对应的病毒名确定为待解密的加密后的子数据。

请参考图2D,假设特征信息库如上表一所示,病毒名库如上表二所示,杀毒软件在检查文件21是否为恶意文件时,首先通过特征匹配器22查找特征信息库23中是否存在与文件21的特征信息相匹配的特征信息;若特征信息库23中存在与文件21的特征信息相匹配的特征信息,则杀毒软件从特征信息库23中获取与该特征信息相对应的病毒ID3。然后,杀毒软件通过病毒名选择器24在病毒名库25中查找病毒ID3对应的加密后的病毒名3,确定加密后的病毒名3为待解密的加密后的子数据。

可选地,当终端需要一次性使用所有的目标数据时,也可以对目标数据中所有子数据进行解密,本实施例对此不作限定。

步骤206,终端获取加密后的子数据对应的解密算法。

解密算法与加密算法相对应的,比如:加密算法为目标数据异或密钥1,则解密算法为加密后的目标数据异或密钥1。

步骤207,终端根据解密算法解密加密后的子数据。

当终端仅对加密后的目标数据中的部分加密后的子数据进行解密时,终端的内存中仅存在解密后的部分子数据。

可选地,终端在解密加密后的子数据后,显示解密后的子数据。

可选地,步骤201-203可单独实现为服务器侧的数据加密方法;步骤204-207可单独实现为终端侧的数据解密方法;或者,步骤201-203可单独实现为终端侧的数据加密方法;步骤204-207可单独实现为终端侧的数据解密方法,本实施例对此不作限定。

综上所述,本实施例提供的方法,通过至少两种类型的加密算法对目标数据中不同的子数据进行加密,得到加密后的目标数据;解决了服务器在使用单一的加密算法将目标数据作为一个整体进行加密时,恶意人员破解加密后的目标数据的难度较低,加密后的目标数据的安全性不高的问题;由于目标数据是通过至少两种加密算法进行加密的,恶意人员在破解加密后的目标数据时,需要破解至少两种加密算法,因此,提高了恶意人员破解加密后的目标数据的难度,提高了加密后的目标数据的安全性。

另外,通过从加密后的目标数据中确定待解密的加密后的子数据;获取加密后的子数据对应的解密算法,根据该加密算法解密该加密后的子数据,使得终端在使用目标数据中的子数据的过程中,内存中不会存在全部的解密后的目标数据,而是仅存在部分子数据,提高了终端中其它未解密的子数据的安全性。

另外,由于目标数据的加密算法是根据随机生成的密钥生成的,对于同一目标数据中的子数据,前后两次生成的加密算法可能不同,这样,即使前一次生成的加密算法被恶意人员破解,对于后一次生成的加密算法,恶意人员还需要重新破解,提高了恶意人员破解加密后的子数据的难度。

需要补充说明的是,在本实施例中,仅以目标数据包括病毒名库和特征信息库中的至少一种为例进行说明,在实际实现时,目标数据还可以为聊天记录、相册、通话记录、联系人、收藏记录,相应地,目标数据中的子数据还可以为聊天信息、图像数据、通话数据、联系人数据、收藏数据,本实施例对此不作限定。当然,目标数据和子数据还可以为其它类型的数据,本实施例在此不再一一列举。

可选地,根据应用场景的不同,比如:当本实施例提供的数据加密方法用于加密终端中的聊天记录、相册、通话记录、联系人、收藏记录等时,步骤201-203也可以由终端来执行。此时,终端获取到的目标数据是终端中的采集组件采集到的,或者是用户输入的,本实施例对此不作限定。当由终端来加密目标数据时,其实现原理与步骤201-203所述的内容相同,本实施例在此不作赘述。

下面分别对步骤202中获取加密算法的具体方式(参见图3A所示的实施例)、步骤203中选择加密算法对目标数据中的子数据进行加密的具体方式(参见图4A所示的实施例)、步骤206中获取加密后的子数据对应的解密算法的具体方式(参见图5A所示的实施例)分别进行详细的描述。

请参考图3A,其示出了本发明一个实施例提供的获取加密算法的方法的流程图。该方法用于图1所示的数据处理系统中的服务器110中,该方法包括以下几个步骤。

步骤301,获取加解密模板对。

加解密模板对包括:加密模板和该加密模板对应的解密模板。通常,加密模板和解密模板是开发人员选取的。在一个加解密模板对中,加密模板的模板类型和解密模板的模板类型是相同的,该模板类型包括异或模板、同或模板、与非模板、或非模板、与模板、或模板和非模板中的至少两种。当然,模板类型还可以是其它类型的模板,比如:异或模板、与模板的结合等。

步骤302,随机生成至少一个密钥。

本步骤中,服务器通过第一随机数生成器随机生成至少一个密钥,该第一随机数生成器生成随机数的范围可以固定,也可以不固定,本实施例对此不作限定。

另外,本实施例不对第一随机数生成器生成的密钥的位数作限定,比如:第一随机数生成器生成的密钥的位数与子数据的位数相同。

步骤303,根据加解密模板对和密钥生成加解密算法集合。

加解密算法集合包括至少两组加解密算法组合。服务器通过算法合成器将一个加解密模板对和一个密钥合成为一组加解密算法组合,其中,加解密模板对中的加密模板和密钥合成为加密算法,该加解密模板对中的解密模板和密钥合成为解密算法。即,每组加解密算法组合包括加密算法和解密算法,且该组加解密算法组合中的加密算法和解密算法包括的密钥相同。

假设加解密密模板对中的加密模板的模板类型为异或模板,随机数生成器生成的密钥为密钥A,那么,算法合成器得到的加解密算法组合中的加密算法为:子数据异或密钥A;解密算法为加密后的子数据异或密钥A。其中,加密算法与解密算法具有相同的密钥A。

可选地,为了保证终端能够根据密钥确定出唯一的一组加解密算法组合,不同组加密算法组合之间包括的密钥不同。

可选地,不同组的加解密算法组合的加解密模板对的模板类型之间可以相同,也可以不同,本实施例对此不作限定。

请参考图3B所示的加解密算法集合。加解密算法集合包括三组加解密算法组合,每组加解密算法包括加密算法和解密算法。不同组加解密算法组合的密钥不同,比如:第一组加解密算法组合的密钥为密钥A、第二组加解密算法组合的密钥为密钥B、第三组加解密算法组合的密钥为密钥C。不同组的加密算法组合的加解密模板对可以相同,比如:第一组加解密算法组合的加解密模板对的模板类型与第二组加解密算法组合的加解密模板对的模板类型相同,均为异或模板;不同组的加密算法组合的加解密模板对的模板类型也可以不同,比如:第一组加解密算法组合的加解密模板的模板类型为异或模板,第三组加解密算法组合的加解密模板对的模板类型为同或模板,二者不同。

综上所述,本实施例提供的方法,通过获取加解密模板对;随机生成至少一个密钥;根据加解密模板对和密钥生成加解密算法,使得服务器在加解密模板的数量固定的情况下,可以通过随机生成多个密钥来生成多种加解密算法,增加了加密算法的个数。

另外,由于加解密模板的算法复杂度较低,降低了服务器加密子数据和终端解密子数据的难度,从而提高了加密目标数据和解密目标数据的效率。

请参考图4A,其示出了本发明一个实施例提供的通过加密算法对目标数据中的子数据进行加密的方法的流程图。该方法用于图1所示的数据处理系统中的服务器110中,该方法包括以下几个步骤。

步骤401,对于每条子数据,从至少两种加密算法的密钥中,随机选取目标密钥。

本步骤中,服务器通过第二随机数生成器从加密算法的密钥中随机选取目标密钥。根据图3A所示的实施例可知,加解密算法集合中的加密算法由加密模板和对应的密钥构成,根据随机数生成器生成的随机数可以在加解密算法集合中查找出对应的目标密钥。

可选地,为了保证服务器能够根据第二随机数生成器生成的随机数,在加解密算法集合中查找出对应的目标密钥,第二随机数生成器的随机数的生成范围由加解密算法集合中的所有密钥构成。

假设服务器生成的加解密算法集合如图3B所示,那么,第二随机数生成器的随机数的生成范围由密钥A、密钥B和密钥C构成。

步骤402,确定至少两种加密算法中目标密钥所属的目标加密算法。

服务器通过加密算法选择器从至少两种加密算法中选择目标加密算法。由于加密算法由加密模板和对应的密钥构成,因此,加密算法选择器根据目标密钥可以确定出该目标密钥所属的目标加密算法。

假设服务器生成的加解密算法集合如图3B所示,第二随机数生成器生成的目标密钥为密钥A,那么,加密算法选择器确定出的密钥加密算法为:子数据异或密钥A。

步骤403,通过目标加密算法加密子数据,得到加密后的子数据。

假设目标密钥为密钥A,服务器根据密钥A确定出的目标加密算法为:子数据异或密钥A,若子数据为10110110,密钥A为00001111,则加密后的子数据为10111001。

需要补充说明的是,本实施例以密钥的位数与子数据的位数相等为例进行说明,在实际实现时,密钥的位数与子数据的位数也可以不同。当密钥的位数与子数据的位数不同时,对于密钥和子数据中位数较小的一者,在数据前面进行补零处理,补零处理后得到的位数与另一者的位数相等。

步骤404,建立加密后的子数据与目标密钥之间的对应关系。

对应关系用于在对加密后的子数据进行解密时,根据对应的目标密钥确定出所属的解密算法。

假设子数据为表一所示的病毒名库中的各个病毒名,服务器根据密钥A所属的异或算法加密病毒名1,建立密钥A与加密后的病毒名1之间的对应关系;根据密钥B所属的异或算法加密病毒名2,建立密钥B与加密后的病毒名2之间的对应关系;根据密钥C所属的同或算法加密病毒名3,建立密钥C与加密后的病毒名3之间的对应关系,由此,得到表三所示的病毒名库。

表三:

步骤405,根据加密后的子数据生成加密后的目标数据。

可选地,步骤405可以在步骤404之后执行,也可以在步骤404之前执行,还可以与步骤404同时执行,本实施例对此不作限定。

综上所述,本实施例提供的方法,通过从加解密算法集合中随机选择一种加密算法来加密目标数据中的子数据,建立加密后的子数据与加密算法中的密钥之间的对应关系,并得到加密后的目标数据,在提高了恶意人员解密加密后的目标数据的难度的前提下,还保证了终端能够根据密钥正常解密加密后的目标数据,保证了加密后的目标数据能够被终端正常使用。

示意性地,为了更清楚地理解本实施例提供的数据加密方法,请参考图4B,下面对该数据加密方法举一个实例进行说明。在本实例中,以目标数据为病毒名库,子数据为病毒名为例进行说明。

服务器在获取到病毒名41后,首先,通过第二随机数生成器42生成目标密钥43;然后,通过加密算法选择器44根据该目标密钥43从加解密算法集合45中选择该目标密钥43所属的目标加密算法46;然后,通过该目标加密算法46加密病毒名41,得到加密后的病毒名47;建立加密后的病毒名47和密钥43之间的对应关系,得到的对应关系保存在病毒名库中。

请参考图5A,其示出了本发明一个实施例提供的获取加密后的子数据对应的解密算法的方法的流程图。该方法用于图1所示的数据处理系统中的终端120中,该方法包括以下几个步骤。

步骤501,获取加解密算法集合。

终端获取到的加解密算法集合可以为自身生成的,也可以是服务器发送的,本实施例对此不作限定。其中,加解密算法集合包括至少两组加解密算法组合,每组加解密算法组合包括加密算法和解密算法,加密算法包括加密模板和密钥,解密算法包括解密模板和密钥,同一组加解密算法组合中的加密算法和解密算法包括的密钥相同,不同组加密算法组合之间包括的密钥不同。

可选地,当终端从服务器获取加密后的目标数据对应的解密算法时,服务器可以不将加解密算法集合全部发送至终端,而是将加解密算法集合中的解密算法发送至终端,本实施例对此不作限定。

步骤502,根据预存的对应关系确定加密后的子数据对应的密钥,对应关系至少包括加密后的子数据与密钥之间的对应关系。

终端在获取到加密后的目标数据时,还会获取到加密后的目标数据中每条加密后的子数据与密钥之间的对应关系,该对应关系用于供终端确定出每条加密后的子数据对应的解密算法。假设终端获取到的对应关系如表三所示。

可选地,步骤502可以在步骤501之后执行,也可以在步骤501之前执行,还可以与步骤501同时执行,本实施例对此不作限定。

步骤503,从加解密算法集合中查找密钥所属的解密算法。

终端通过解密算法选择器从解密算法集合中查找密钥所属的解密算法。

假设终端获取到的加解密算法集合如图3B所示,加密后的子数据与密钥之间的对应关系如表三所示,若加密后的子数据为加密后的病毒名1,则根据表三所示的对应关系得到加密后的病毒名1对应的密钥为密钥A,解密算法选择器在加解密算法集合中查找到密钥A所属的解密算法为:加密后的子数据异或密钥A。

示意性地,为了更清楚地理解本实施例提供的数据解密方法,请参考图5B,下面对该数据解密方法举一个实例进行说明。在本实例中,以目标数据为病毒名库,子数据为病毒名为例进行说明。

终端在检测文件51是否为恶意文件时,通过特征匹配器52在特征信息库53中查找是否存在与文件51的特征信息相匹配的特征信息;若存在,则终端从特征信息库53中获取该特征信息对应的病毒ID54;终端通过病毒名选择器55在病毒名库56中,查找病毒ID54对应的加密后的病毒名57和与该加密后的病毒名57对应的密钥58;终端通过解密算法选择器59从加解密算法集合591中选择密钥58所属的解密算法592;终端根据解密算法592解密该加密后的病毒名57,得到的解密后的病毒名593。

可选地,服务器可以使用至少两种目标加密算法加密同一子数据。此时,对于每条子数据,服务器选取每种目标加密算法的方式与图4A所述的选取方法相同,本实施例在此不作赘述。

服务器选择出用于加密同一条子数据的至少两种目标加密算法后,使用该至少两种目标加密算法加密该子数据的方式包括但不限于以下几种。

第一种方式,服务器中预设有各个加密算法的优先级,服务器根据选择出的至少两种目标加密算法的优先级由高到低的顺序加密该子数据,得到加密后的子数据。

相应地,当终端解密该加密后的子数据时,确定该至少两种目标加密算法中,每种目标加密算法对应的解密算法(即与该加密算法具有相同的密钥的解密算法),根据解密算法的优先级由低到高的顺序解密该子数据。其中,解密算法的优先级与加密算法的优先级相同。

假设服务器选择出的目标加密算法为:子数据异或密钥A和子数据异或密钥B,且加密算法的优先级为子数据异或密钥A高于子数据异或密钥B;则对于同一子数据,服务器先将子数据异或密钥A,得到第一子数据;再将第一子数据异或密钥B得到加密后的子数据。

相应地,终端在解密上述加密后的子数据时,先将加密后的子数据异或密钥B,得到第一子数据;再将第一子数据异或密钥A得到子数据。

第二种方式,对于同一条子数据,服务器使用选择出的至少两种目标加密算法按照随机顺序加密该子数据,得到加密后的子数据;记录该随机顺序,将该随机顺序发送给终端。

相应地,当终端解密该加密后的子数据时,确定该至少两种目标加密算法中,每种目标加密算法对应的解密算法(即与该加密算法具有相同的密钥的解密算法),根据与服务器记录的随机顺序相反的顺序解密该子数据。

假设服务器选择出的目标加密算法为:子数据异或密钥A和子数据异或密钥B;对于同一子数据,服务器随机性地先将子数据异或密钥A,得到第一子数据;再将第一子数据异或密钥B得到加密后的子数据,记录该随机顺序:子数据异或密钥A、子数据异或密钥B。

相应地,终端在解密上述加密后的子数据时,根据与上述随机顺序相反的顺序,先将加密后的子数据异或密钥B,得到第一子数据;再将第一子数据异或密钥A得到子数据。

为了更清楚地理解本发明提供的数据加密方法和数据解密方法的整个流程,下面对上述方法举一个实例进行说明。请参考图6,其示出了本发明一个实施例提供的数据处理方法的流程图。在下述实例中,以数据加密方法应用于服务器中,数据解密方法应用于终端中,目标数据为病毒名库,目标数据中的子数据为病毒名库中的病毒名为例进行说明。

服务器获取病毒名库61;服务器通过算法合成器62根据加解密模板对和密钥生成加解密算法集合63;服务器通过加密算法选择器64根据随机生成的密钥从加解密算法集合63中选择目标加密算法65;服务器根据目标加密算法65对病毒名库61进行加密,得到加密后的病毒名库66;服务器将加解密算法集合63和加密后的病毒名库66发送至终端。

相应地,终端接收加解密算法集合63和加密后的病毒名库66。

当终端中的杀毒软件检测文件67是否为恶意文件时,通过杀毒软件中的杀毒引擎68检测文件的特征信息是否为恶意文件的特征信息;若是,则获取该特征信息对应的病毒ID;从加密后的病毒名库66中确定该病毒ID对应的加密后的病毒名,根据该加密后的病毒名对应的密钥从加解密算法集合63中选择解密算法,使用该解密算法对该加密后的病毒名进行解密,得到原始的病毒名69;终端显示该病毒名69。

下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。

请参考图7,其示出了本发明一个实施例提供的数据处理装置的框图。该装置具有执行上述方法示例的功能,功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:第一获取模块710、第二获取模块720和加密模块730。

第一获取模块710,用于执行上述步骤201;

第二获取模块720,用于执行上述步骤202;

加密模块730,用于执行上述步骤203。

可选地,第二获取模块720,包括:获取单元、第一生成单元和第二生成单元。

获取单元,用于执行上述步骤301;

第一生成单元,用于执行上述步骤302;

第二生成单元,用于执行上述步骤303。

可选地,对于同一组加解密算法组合中的加密算法和解密算法,加密算法包括的加密模板的模板类型和解密算法包括的解密模板的模板类型相同,模板类型包括异或模板、同或模板、与非模板、或非模板、与模板、或模板和非模板中的至少一种。

可选地,加密模块730,包括:选取单元、确定单元、加密单元、关系建立单元和第三生成单元。

选取单元,用于执行上述步骤401;

确定单元,用于执行上述步骤402;

加密单元,用于执行上述步骤403;

关系建立单元,用于执行上述步骤404;

第三生成单元,用于执行上述步骤405。

相关细节可参考图2A、图3A、图4A所示的方法实施例。

请参考图8,其示出了本发明一个实施例提供的数据处理装置的框图。该装置具有执行上述方法示例的功能,功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:第一获取模块810、确定模块820、第二获取模块830和解密模块840。

第一获取模块810,用于执行上述步骤204;

确定模块820,用于执行上述步骤205;

第二获取模块830,用于执行上述步骤206;

解密模块840,用于执行上述步骤207。

可选地,第二获取模块830,包括:获取单元、确定单元和查找单元。

获取单元,用于执行上述步骤501;

确定单元,用于执行上述步骤502;

查找单元,用于执行上述步骤503。

相关细节可参考图2A和图5A所示的方法实施例。

需要说明的是:上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图9,其示出了本发明一个实施例提供的服务器的结构框架图。所述服务器900包括中央处理单元(CPU)901、包括随机存取存储器(RAM)902和只读存储器(ROM)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。所述服务器900还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)906,和用于存储操作系统913、应用程序914和其他程序模块918的大容量存储设备907。

所述基本输入/输出系统906包括有用于显示信息的显示器908和用于用户输入信息的诸如鼠标、键盘之类的输入设备909。其中所述显示器908和输入设备909都通过连接到系统总线905的输入输出控制器910连接到中央处理单元901。所述基本输入/输出系统906还可以包括输入输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备907通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。所述大容量存储设备907及其相关联的计算机可读介质为服务器900提供非易失性存储。也就是说,所述大容量存储设备907可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备907可以统称为存储器。

根据本发明的各种实施例,所述服务器900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器900可以通过连接在所述系统总线905上的通信组件911连接到网络912,或者说,也可以使用通信组件911来连接到其他类型的网络或远程计算机系统(未示出)。

所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的数据加密方法中由服务器所执行的指令。

本领域普通技术人员可以理解上述实施例的数据加密方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

请参考图10,其示出了本发明一个实施例提供的终端的结构示意图。该终端1000用于实施上述实施例中提供的数据解密方法。具体来讲:

终端1000可以包括RF(Radio Frequency,射频)电路1010、包括有一个或一个以上计算机可读存储介质的存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、WiFi(wireless fidelity,无线保真)模块1070、包括有一个或者一个以上处理核心的处理器1080、以及电源1090等部件。本领域技术人员可以理解,图10中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1080处理;另外,将涉及上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。

存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行各种功能应用以及数据解密。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1000的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1020还可以包括存储器控制器,以提供处理器1080和输入单元1030对存储器1020的访问。

输入单元1030可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元1030可包括图像输入设备1031以及其他输入设备1032。图像输入设备1031可以是摄像头,也可以是光电扫描设备。除了图像输入设备1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及终端1000的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1040可包括显示面板1041,可选地,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板1041。

终端1000还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在终端1000移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端1000还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路1060、扬声器1061,传声器1062可提供用户与终端1000之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一终端,或者将音频数据输出至存储器1020以便进一步处理。音频电路1060还可能包括耳塞插孔,以提供外设耳机与终端1000的通信。

WiFi属于短距离无线传输技术,终端1000通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块1070,但是可以理解的是,其并不属于终端1000的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器1080是终端1000的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行终端1000的各种功能和处理数据,从而对手机进行整体监控。可选地,处理器1080可包括一个或多个处理核心;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。

终端1000还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1090还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,终端1000还可以包括蓝牙模块等,在此不再赘述。

具体在本实施例中,终端1000还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述方法的指令。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

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

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