发明内容
本申请的主要目的在于提供一种数据加密方法及装置,以解决现有技术存在的对包含公共数据和非公共数据的全部数据整体地、无差别地进行加密而导致已知的公共数据受到攻击的问题,其中:
本申请的一个方面提供一种数据加密方法,其特征在于,所述数据包含:公共数据和非公共数据,所述方法包括:对所述非公共数据进行加密,以得到加密后的非公共数据;对未加密的公共数据和所述加密后的非公共数据进行进一步处理。
根据本申请,在所述方法中,对所述非公共数据进行加密,以得到加密后的非公共数据,进一步包括:分别确定所述非公共数据中各部分数据对应的加密算法;对所述非公共数据中各部分数据分别利用其对应的加密算法进行加密。
根据本申请,在所述方法中,分别确定所述非公共数据中的各部分数据对应的加密算法,进一步包括:分别确定所述非公共数据中各部分数据的加密级别;根据确定的各部分数据的加密级别,确定所述各部分数据对应的加密算法。
根据本申请,在所述方法中,对所述非公共数据进行加密,以得到加密后的非公共数据,进一步包括:利用加密算法对所述非公共数据中各部分数据整体地进行加密。
根据本申请,在所述方法中,对未加密的公共数据和所述加密后的非公共数据进行进一步处理,包括:利用预定加密算法对所述未加密的公共数据和所述加密后的非公共数据进行第二次加密;以及对第二次加密后的数据进行传输或存储。
根据本申请,在所述方法中,对未加密的公共数据和所述加密后的非公共数据进行进一步处理,包括:对未加密的公共数据和所述加密后的非公共数据进行传输或存储。
根据本申请,在所述方法中,所述公共数据包括:数据存储或数据传输过程中公开或公共已知的数据。
根据本申请,在所述方法中,所述公共数据包括:根据传输协议,在正常的通讯中必然会传输的数据,或计算设备的本地磁盘或文件中的公共已知数据。
根据本申请,在所述方法中,所述非公共数据包括:数据存储或数据传输过程中需要保护的数据。
根据本申请,在所述方法中,所述非公共数据包括:用户的账号、密码、敏感数据,或计算设备的磁盘或文件中需要保护的私有数据。
本申请的另一方面提供一种数据加密装置,其特征在于,所述数据包含:公共数据和非公共数据,所述装置包括:数据加密模块,用于对所述非公共数据进行加密,以得到加密后的非公共数据;数据处理模块,用于对未加密的公共数据和所述加密后的非公共数据进行进一步处理。
根据本申请,在所述装置中,所述数据加密模块,进一步包括:确定模块,用于分别确定所述非公共数据中各部分数据对应的加密算法;加密模块,用于对所述非公共数据中各部分数据分别利用其对应的加密算法进行加密。
根据本申请,在所述装置中,所述确定模块,进一步包括:第一确定子模块,用于分别确定所述非公共数据中各部分数据的加密级别;第二确定子模块,用于根据确定的各部分数据的加密级别,确定所述各部分数据对应的加密算法。
根据本申请,在所述装置中,所述数据加密模块进一步用于:利用加密算法对所述非公共数据中各部分数据整体地进行加密。
根据本申请,在所述装置中,所述数据处理模块进一步用于:利用预定加密算法对所述未加密的公共数据和所述加密后的非公共数据进行第二次加密;以及对第二次加密后的数据进行传输或存储。
根据本申请,在所述装置中,所述数据处理模块进一步用于:对未加密的公共数据和所述加密后的非公共数据进行传输或存储。
与现有技术相比,根据本申请的技术方案,通过区分公共数据和非公共数据,只对需要保护的非公共数据进行加密,不对公共已知的公共数据进行加密,从而能够避免已知的公共数据被攻击,有效地保护私有的、敏感的数据,提高数据加密的安全性。
具体实施方式
本申请的主要思想在于,在对数据进行加密的过程中,只对非公共数据进行加密,对公共数据不进行加密,以防止已知的公共数据受到攻击。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
根据本申请的实施例,提供了一种数据加密方法。
参考图1,图1是本申请实施例的数据加密方法的流程图。
其中,所述数据可以包括:公共数据和非公共数据,所述公共数据是在被存储或被传输之前已知的数据,除了公共数据之外的数据为非公共数据。所述公共数据可以为数据存储或数据传输过程中公开或公共已知的数据,例如,根据传输协议,在正常的通讯中必然会传输的数据,例如,建立连接时预先约定的信号,或者可以为计算设备(例如,可以包括个人计算机、公共设备、智能终端等)的本地磁盘或文件中的公共已知数据,例如,文件配置表(FAT表)的表头结构数据、Windows公有文件等。此类公共数据是已知的,加密后容易受到暴力穷举攻击而被计算出其加密密钥或可解密的中间过程密钥。所述非公共数据可以为数据存储或数据传输过程中需要保护的数据,例如,用户的账号、密码、敏感数据等,或者可以为计算设备的磁盘或文件中需要保护的私有数据。
如图1所示,在步骤S110处,对所述非公共数据进行加密,以得到加密后的非公共数据。也就是说,对待处理数据中的非公共数据进行加密,而对其中的公共数据不进行加密。
具体地,对非公共数据进行加密的流程可以如图2所示,图2是根据本申请一个实施例的对所述非公共数据进行加密,以得到加密后的非公共数据的步骤的流程图。
在步骤S210处,分别确定所述非公共数据中各部分数据对应的加密算法。
具体地,可以将所述非公共数据划分为多个部分(例如,按照字段进行划分),分别确定各个部分数据对应的加密算法。其中,各个部分数据对应的加密算法可以相同也可以不同。例如,可以确定各个部分数据分别对应不同的加密算法,使用的加密算法越多,破解的成本越高,数据也就越安全。
根据本申请的一个实施例,可以通过对非公共数据中的各部分数据划分加密级别,进而根据各部分数据的加密等级确定其对应的加密算法。如图3所示,图3是根据本申请一个实施例的分别确定所述非公共数据中的各部分数据对应的加密算法的步骤的流程图。
如图3所示,在步骤S310处,分别确定所述非公共数据中各部分数据的加密级别。
具体而言,可以根据数据的重要程度(例如,敏感程度)确定各部分数据的加密级别,例如,最重要的数据的加密级别可以确定为一级,次重要的数据的加密级别确定为二级,以此类推。
在步骤S320处,根据确定的各部分数据的加密级别,确定所述各部分数据对应的加密算法。
根据本申请的一个实施例,加密级别较高的数据可以确定其对应较优的加密算法,从而可以根据确定的各部分数据的加密级别,分别确定各部分数据所对应的加密算法。
以上详细描述了根据本申请的一个实施例的分别确定非公共数据中各部分数据对应的加密算法的步骤,接下来返回图2。
在步骤S220处,对所述非公共数据中各部分数据分别利用其对应的加密算法进行加密。
也就是说,利用已经确定的各个部分数据对应的加密算法,分别对非公共数据中各部分数据进行加密,以得到加密后的非公共数据。
可选地,还可以利用加密算法对所述非公共数据中各部分数据整体地进行加密。即,对非公共数据中各部分数据利用同一加密算法进行整体加密。
以上详细描述了根据本申请的实施例对所述非公共数据进行加密,以得到加密后的非公共数据的步骤,接下来返回图1。
在步骤S120处,对未加密的公共数据和所述加密后的非公共数据进行进一步处理。
根据本申请的一个实施例,对未加密的公共数据和所述加密后的非公共数据进行进一步处理可以包括:利用预定加密算法对所述未加密的公共数据和所述加密后的非公共数据进行第二次加密,以及对第二次加密后的数据进行传输或存储。
具体地,可以先对该数据中的非公共数据进行加密,再利用预定加密算法或根据预定安全协议对加密后的非公共数据和未加密的公共数据进行二次加密,之后再对第二次加密后的数据进行传输或存储。
例如,可以在步骤S110处,对待存储的数据中的非公共数据进行加密,然后,在步骤S120处,将加密后的非公共数据和公共数据共同封装到TrueCrypt中再进行存储,这样即使使用彩虹表攻击或暴力穷举攻击,解出来的关键数据仍然是加密数据。
又例如,当进行数据传输时,可以在步骤S110处,对待传输的数据中的非公共数据进行加密,然后在步骤S120处,根据预定安全协议对加密后的非公共数据和公共数据进行第二次加密,并对第二次加密后的数据进行传输。
可选地,根据本申请的一个实施例,对未加密的公共数据和所述加密后的非公共数据进行进一步处理可以包括:对未加密的公共数据和所述加密后的非公共数据进行传输或存储。
也即是说,在对非公共数据加密之后,可以不对加密后的非公共数据和未加密的公共数据作为整体进行进一步加密,而是直接将其一起进行传输或者进行存储。
本申请的技术方案可以应用于基于网络连接的数据传输(例如,数据交互)中,对待传输的数据进行加密、计算设备的数据存储进行加密以及任何本申请的技术方案能够适用的通讯传输过程。
本申请的技术方案,通过区分公共数据和需非公共数据,只对需要保护的非公共数据进行加密,不对已知的公共数据进行加密,从而能够避免对公共数据的攻击(如,明文攻击),有效地保护私有的、敏感的数据,提高数据加密的安全性。
例如,在进行在线数据交互时,只对用户账号、密码、敏感数据等需要保护的非公共数据进行加密,而对其他已知的公共数据不进行加密,避免导致公共数据受到攻击。
本申请还提供了一种数据加密装置。
图4示意性地示出了根据本申请一个实施例的数据加密装置的结构框图。
根据本申请的一个实施例,其中,所述数据包含:公共数据和非公共数据,该装置400包括:数据加密模块410和数据处理模块420。
其中,数据加密模块410可以用于对所述非公共数据进行加密,以得到加密后的非公共数据。
数据处理模块420可以用于对未加密的公共数据和所述加密后的非公共数据进行进一步处理。
根据本申请的一个实施例,数据加密模块410可以进一步包括:确定模块和加密模块。
确定模块可以用于分别确定所述非公共数据中各部分数据对应的加密算法。
加密模块可以用于对所述非公共数据中各部分数据分别利用其对应的加密算法进行加密。
根据本申请的一个实施例,确定模块可以进一步包括:第一确定子模块和第二确定子模块。
其中,第一确定子模块可以用于分别确定所述非公共数据中各部分数据的加密级别。
第二确定子模块可以用于根据确定的各部分数据的加密级别,确定所述各部分数据对应的加密算法。
根据本申请的一个实施例,数据加密模块410可以进一步用于:利用加密算法对所述非公共数据中各部分数据整体地进行加密。
根据本申请的一个实施例,数据处理模块420可以进一步用于:利用预定加密算法对所述未加密的公共数据和所述加密后的非公共数据进行第二次加密;以及对第二次加密后的数据进行传输或存储。
根据本申请的一个实施例,数据处理模块420可以进一步用于:对未加密的公共数据和所述加密后的非公共数据进行传输或存储。
由于本实施例的装置所实现的功能基本相应于前述图1至图3所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。