利用白盒库文件和白盒密钥文件进行加解密的方法及装置与流程

文档序号:14726779发布日期:2018-06-19 10:58阅读:222来源:国知局

本申请涉及终端安全防护技术领域,尤其涉及一种利用白盒库文件和白盒密钥文件进行加解密的方法及装置。



背景技术:

随着终端技术的发展,终端中安装的应用程序越来越多。用户在使用这些应用程序的过程中会产生一些不希望被攻击者窃取的数据,或者用户不希望应用程序本身的执行逻辑被攻击者逆向破解。为了保护应用程序及其运行过程中产生的数据的安全,常常需要对这些数据进行加密。

传统的加密技术是黑盒加密技术,黑盒加密技术一般是指,在黑盒(black-box)环境下,利用加密算法对明文数据进行加密,得到密文数据及密钥的技术。其中,黑盒环境是指,安全可靠、对攻击者来说不可见的运行环境,在该环境下,攻击者只能获取加密算法的输入或输出,而无法获得密钥。

近年来,智能终端大量普及,由于智能终端的运行环境是相对开放的,也即智能终端的运行环境对攻击者而言是可见的(俗称白盒(white-box)环境),因此黑盒加密技术不再适用,白盒密码技术相应地被提出。白盒密码技术是指,在白盒环境下能够抵御攻击的密码技术。其核心思想是,把密码算法进行混淆,使得攻击者无法得知具体的算法流程,进而达到保护密钥信息的目的,防止攻击者在白盒环境中提取出密钥,从而保证被保护数据的安全。

现有的白盒加密技术,通常是先选定一个密钥,然后对明文到密文的映射进行置乱编码,将编码的结果用查找表(也称白盒库文件)的方式表示,使得攻击者无法从查找表中分析得到密钥。例如Chow等人设计出的白盒AES算法。但是现有的白盒AES算法已被破解,使得白盒环境下的数据仍然存在安全威胁。



技术实现要素:

本申请实施例提供一种利用白盒库文件和白盒密钥文件进行加解密的方法及装置,用以解决现有技术中存在的密钥不安全的问题。

为了解决上述技术问题,本申请实施例采用下述技术方案:

一种利用白盒库文件和白盒密钥文件进行加解密的方法,包括:

提交库文件生成请求给服务器,其中,所述库文件生成请求中携带有用户选择的第一参数组合;

接收所述服务器根据所述第一参数组合反馈的白盒库文件;

提交密钥文件生成请求给服务器,其中,所述密钥文件生成请求中携带有用户选择的第二参数组合;

接收所述服务器根据所述第二参数组合反馈的白盒密钥文件;

根据所述白盒库文件和所述白盒密钥文件进行加解密处理。

一种利用白盒库文件和白盒密钥文件进行加解密的装置,包括:

发送模块,用于提交库文件生成请求给服务器,其中,所述库文件生成请求中携带有用户选择的第一参数组合;

接收模块,用于接收所述服务器根据所述第一参数组合反馈的白盒库文件;

所述发送模块,还用于提交密钥文件生成请求给服务器,其中,所述密钥文件生成请求中携带有用户选择的第二参数组合;

所述接收模块,还用于接收所述服务器根据所述第二参数组合反馈的白盒密钥文件;

处理模块,用于根据所述白盒库文件和所述白盒密钥文件进行加解密处理。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

通过上述技术方案,使得密钥更新较为方便,而且,在更新密钥时,不需要更新白盒库文件,因此,可以简化动态白盒加密流程,且提升密钥的安全性。进而,提升用户在对密文进行解密以及对明文进行加密时的安全性。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1(a)为本申请提供的白盒库文件的生成方法的流程示意图之一;

图1(b)为本申请提供的白盒库文件的生成方法的流程示意图之二;

图2为本申请提供的白盒库文件的下载方法的流程示意图;

图3(a)为本申请提供的白盒库文件的下载方法的流程示意图之一;

图3(b)为本申请提供的白盒库文件的下载方法的流程示意图之二;

图4(a)为本申请提供的白盒密钥文件的生成方法的流程示意图之一;

图4(b)为本申请提供的白盒密钥文件的生成方法的流程示意图之二;

图5为本申请提供的白盒密钥文件的下载方法的流程示意图;

图6(a)为本申请提供的白盒密钥文件的下载方法的流程示意图之一;

图6(b)为本申请提供的白盒密钥文件的下载方法的流程示意图之二;

图7为本申请提供的利用白盒库文件和白盒密钥文件的进行加解密的方法流程示意图;

图8(a)为本申请提供的白盒库文件的生成装置的结构示意图;

图8(b)为本申请提供的白盒库文件的下载装置的结构示意图;

图8(c)为本申请提供的白盒密钥文件的生成装置的结构示意图;

图8(d)为本申请提供的白盒密钥文件的下载装置的结构示意图;

图8(e)为本申请提供的利用白盒库文件和白盒密钥文件进行加解密的装置结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

在本申请中,主要介绍了一种动态白盒技术方案。所谓动态白盒是指白盒库文件生成后不需要再更新,原始密钥通过特定的白盒密钥生成工具进行密钥转换,得到白盒密钥;白盒密钥与相应文件传输相匹配的白盒库文件后,就可以通过查表的方式对明文进行加密,或对密文进行解密。在该动态白盒的加解密方案中,白盒密钥是安全的,攻击者不能通过分析白盒密钥得到任何关于原始密钥的信息,从而,能够加强原始密钥的破解难度,保障加解密操作的安全性。

下面分别通过动态白盒技术中的几个方案分支,对整个动态白盒技术进行全面介绍。

其中,整个动态白盒技术包括:动态白盒库文件的生成方案;动态白盒库文件的下载方案;动态白盒密钥文件的生成方案;动态白盒密钥文件的下载方案;以及,利用白盒库文件以及白盒密钥文件进行加解密的方案。

参照图1(a)所示,为本申请提供的白盒库文件的生成方法的流程示意图,需要说明的是,该白盒库文件的生成方案的执行主体可以为服务器,这里的服务器可以是专门用于进行白盒文件处理的白盒系统服务器,也可以是集成在开发商服务器内的子服务器。该生成方法主要包括以下步骤:

步骤11:根据确定的第一参数组合,确定与所述第一参数组合匹配的第一代码块。

可选地,在本申请中,步骤11在根据确定的第一参数组合,确定与所述第一参数组合匹配的第一代码块时,参照图1(b)所示,具体执行为:

步骤111:从接收到的库文件生成请求中确定第一参数组合。

具体地,在本申请中,库文件生成请求可以由客户端生成并提交。其中,库文件生成请求中携带有第一参数组合,该第一参数组合中至少包括:算法标识、适用平台标识和目标功能这三种类型。

-所述算法标识,指的是加密算法中的一种算法标识或多种算法标识的组合。目前支持的加密算法包括:高级加密标准(Advanced Encryption Standard,AES)算法,数据加密算法(Data Encryption Standard,DES,三重数据加密算法(Triple Data Encryption Standard,TDES和分组密码算法SM4。

-所述适用平台标识,指的是该动态白盒技术所适用的终端操作系统。支持的操作系统至少包括:Android操作系统或iOS操作系统,其实也不限定为此,还可以支持兼容Android操作系统和iOS操作系统。其中,Android操作系统可以支持生成静态白盒库文件和动态白盒库文件;iOS操作系统可以支持生成静态白盒库文件。

-所述目标功能,指待生成的白盒库文件是用来加密、解密或加解密。这里的目标功能在客户端开放给用户时,可以供用户进行单选或多选。

其实,在本申请中,第一参数组合除了包含上述三种类型的参数之外,还可以包含:设备绑定功能;具体可以是:添加设备绑定功能或是不添加设备绑定功能。具体可以在该第一参数组合中添加客户端的标识。从而,使得该动态白盒技术的处理侧可以针对特定用户进行白盒密钥服务。

步骤112:根据所述第一参数组合选取相匹配的代码库对应的第一代码块。

从客户端接收到的库文件生成请求中解析出其携带的第一参数组合,然后,根据该第一参数组合,从与加密算法对应的加密库中选取相匹配的代码库,其中,加密库的个数与加密算法相匹配,可以为4个或是8个等,本申请并不作限定。根据选取的代码库确定对应的第一代码块。其中,每个代码库中包含多个第一代码块。

步骤12:运行所述第一代码块,随机生成查找表源文件。

具体地,在本申请中,查找表源文件可以是包含查找表的代码集合。其中,该查找表源文件可以根据预设生成规则动态随机生成,从而,保证每次发起的库文件生成请求所生成的查找表源文件都是不同的,进而使得每次进行密钥请求所生成的白盒库文件都是不同的,提升了加解密的安全性。

可选地,在本申请中,步骤12具体执行为:运行所述第一代码块,动态随机生成至少一个查找表及对应每个查找表的固定代码,其中,所述固定代码记录有对所述至少一个查找表执行查表操作时的查找规则。所述查找规则用于指示如何查找表以及查找方式。其实,查找表是以映射关系的方式存在的,查表的过程就是,输入明文-输出密文,或是,输入密文-输出明文的过程。

步骤13:对所述查找表源文件进行编译,得到白盒库文件。

在本申请中,步骤13具体包括:将所述至少一个查找表与对应每个查找表的固定代码进行组合;对组合后的所述至少一个查找表以及对应每个查找表的固定代码进行编译,得到白盒库文件。

该白盒库文件中的查找表用于对后续输入的明文进行加密,或是用于对后续输入的密文进行解密。

通过上述技术方案,采用动态白盒技术,根据接收到的库文件生成请求中携带的第一参数组合,确定相应的第一代码块,并在运行第一代码块后,动态随机生成相应的查找表以及对应的固定代码,将查找表以及对应的固定代码进行编译后,得到动态白盒技术中的白盒库文件,在更新密钥时,不需要更新白盒库文件,因此,可以简化动态白盒加密流程,且提升密钥的安全性。

另外,在本申请中,考虑到在对查找表源文件进行编译,得到白盒库文件是,不限定仅仅对查找表以及对应的固定代码进行编译,还可以针对不同的操作类型,添加相应的封装代码,用于与相应的操作系统进行对接。例如,针对Android操作系统,可以添加JNI代码作为接口封装代码,该JNI代码与查找表以及固定代码共同组合后进行编译,得到白盒库文件,以便于该白盒库文件适用于相应的Android操作系统。再如,针对iOS操作系统,可以添加其他类似代码(以能够与iOS操作系统的接口对接为准的代码)作为接口封装代码,该接口封装代码与查找表以及固定代码共同组合后进行编译,得到白盒库文件,以便于该白盒库文件适用于相应的iOS操作系统。这种设计可以便于与白盒标准算法对接,集成度高。

参照图2所示,为本申请提供的白盒库文件的下载方法的流程示意图,该下载方法主要以客户端和白盒密钥服务器这一系统角度进行介绍,该下载方法主要包括以下步骤:

步骤21:客户端提交库文件生成请求给服务器。

具体地,客户端接收用户的选取操作触发的选取指令,确定用户选取的第一参数组合;之后,将所述第一参数组合添加到库文件生成请求中,并将库文件生成请求提交给服务器,这里的提交可以理解为是发送。该库文件生成请求中携带有第一参数组合。该第一参数组合中至少包括:算法标识、适用平台标识和目标功能这三种类型。

上述白盒库文件的生成方案中已经介绍,此处不再赘述。

其实,在本申请中,第一参数组合除了包含上述三种类型的参数之外,还可以包含:设备绑定功能;具体可以是:添加设备绑定功能或是不添加设备绑定功能。具体可以在该第一参数组合中添加客户端的标识。从而,使得该动态白盒技术的处理侧可以针对特定用户进行白盒密钥服务。

步骤22:所述服务器确定与所述库文件生成请求匹配的第一代码块;运行所述第一代码块,随机生成查找表源文件;对所述查找表源文件进行编译,将生成的白盒库文件发送给客户端。

具体地,服务器根据接收到的库文件生成请求,解析出其携带的第一参数组合,然后,根据该第一参数组合,从与加密算法对应的加密库中选取相匹配的代码库,根据选取的代码库确定对应的第一代码块。查找表源文件可以是包含查找表的代码集合。其中,该查找表源文件可以根据预设生成规则动态随机生成,从而,保证每次发起的库文件生成请求所生成的查找表源文件都是不同的,进而使得每次进行密钥请求所生成的白盒库文件都是不同的,提升了加解密的安全性。

运行所述第一代码块,动态随机生成至少一个查找表及对应每个查找表的固定代码,其中,所述固定代码记录有对所述至少一个查找表执行查表操作时的查找规则。所述查找规则用于指示如何查找表以及查找方式。其实,查找表是以映射关系的方式存在的,查表的过程就是,输入明文-输出密文,或是,输入密文-输出明文的过程。

将所述至少一个查找表与对应每个查找表的固定代码进行组合;对组合后的所述至少一个查找表以及对应每个查找表的固定代码进行编译,得到白盒库文件。该白盒库文件中的查找表用于对后续输入的明文进行加密,或是用于对后续输入的密文进行解密。

最后,将得到的白盒库文件发送给客户端。

步骤23:所述客户端接收所述服务器反馈的白盒库文件,以便于后续根据所述白盒库文件以及接收到的密钥文件进行加解密操作。

客户端接收服务器反馈的白盒库文件,并存储,以便于客户端根据该白盒库文件对用户输入的明文或者密文进行处理。至此,完成白盒库文件的下载操作。

其实,在本申请中,可以存在同时多个客户端发起白盒库文件生成请求的情况,这时,需要根据每个客户端的标识,分别进行不同的白盒库文件的生成操作,之后,分别发送给与客户端标识对应的客户端。

参照图3(a)所示,为本申请提供的白盒库文件的下载方法的流程示意图,该下载方法主要以客户端侧进行介绍,该下载方法主要包括以下步骤:

步骤31:提交库文件生成请求给服务器。

步骤32:接收服务器根据所述库文件生成请求反馈的白盒库文件,以便于后续根据所述白盒库文件以及接收到的密钥文件进行加解密操作。

可选地,参照图3(b)所示,在提交库文件生成请求给服务器之前,所述方法还包括:

步骤33:确定用户选取的参数组合,所述参数组合至少包括:加密算法标识、适用平台标识、目标功能。

步骤34:生成携带有所述参数组合的库文件生成请求。

可选地,步骤32具体包括:接收所述服务器根据所述库文件生成请求中携带的参数组合反馈的白盒库文件。

可选地,在本申请中,所述白盒库文件通过以下方式确定:根据确定的参数组合,确定与所述参数组合匹配的代码块;运行所述代码块,随机生成查找表源文件;对所述查找表源文件进行编译,得到白盒库文件。

参照图4(a)所示,为本申请提供的白盒密钥文件的生成方法的流程示意图,该生成方法主要包括以下步骤:

步骤41:根据确定的第二参数组合,确定与所述第二参数组合匹配的第二代码块。

可选地,在本申请中,参照图4(b)所示,步骤41具体执行为:

步骤411:从接收到的密钥文件生成请求中确定第二参数组合。

密钥文件生成请求可以由客户端生成并提交。其中,密钥文件生成请求中携带有第二参数组合,该第二参数组合中至少包括:算法标识、原始密钥和目标功能这三种类型。

-所述算法标识,指的是加密算法中的一种算法标识或多种算法标识的组合。目前支持的加密算法包括:高级加密标准(Advanced Encryption Standard,AES)算法,数据加密算法(Data Encryption Standard,DES),三重数据加密算法(Triple Data Encryption Standard,TDES)和分组密码算法SM4。

-所示原始密钥,可以是16进制格式字符串,也不限定为其他进制。即密钥格式只能包含{a-f、A-F、0-9}。具体地:

选择AES算法,原始密钥可以为32或48或64位长度字符或者数组组合;

选择DES算法,原始密钥可以为16位长度字符或者数组组合;

选择3DES算法,原始密钥可以为48位长度字符或者数组组合;

选择SM4算法,原始密钥可以为32位长度字符或者数组组合。

其实,在本申请中,第二参数组合除了包含上述三种类型的参数之外,还可以包含:设备绑定功能;具体可以是:添加设备绑定功能或是不添加设备绑定功能。具体可以在该第二参数组合中添加客户端的标识。从而,使得该动态白盒技术的处理侧可以针对特定用户进行白盒密钥服务。

步骤412:根据所述第二参数组合选取相匹配的代码库对应的第二代码块。

需要说明的是,在本申请中,在进行白盒密钥文件的生成之前,还包括:白盒库文件的生成过程,上述已经介绍,在此不做赘述。而白盒密钥文件的生成方案中,需要结合白盒库文件生成的结果,即本申请中第一参数组合中具体内容可以与第二参数组合相同。除了不同的参数外,例如,第一参数中选择AES算法,且选择适用于iOS操作系统的平台,且是加解密操作,那么,第二参数中也可以为AES算法,加解密操作;而其中第一参数组合中没有的原始密钥,第二参数组合可以任意选择输入。此外,为了能够与生成的白盒库文件相适配使用,在生成白盒库文件之后,还可以将生成白盒库文件过程中所选择的库文件标识发送给客户端,在客户端生成密钥文件生成请求时,可以也将该库文件标识作为第二参数组合的一部分添加进去。那么,在客户端发起密钥文件请求时,还可以结合该库文件标识,选取合适的代码库,找到合适的第二代码块。

步骤42:运行所述第二代码块,得到白盒密钥文件。

具体地,将原始密钥作为输入代入所述第二代码块,输出得到对应所述原始密钥的白盒密钥文件。其中,所述白盒密钥文件可以理解为是经过白盒处理后的白盒密钥,该白盒密钥一般以字符串形式存在。

通过上述技术方案,采用动态白盒技术,根据接收到的库文件生成请求中携带的第二参数组合,确定相应的第二代码块,并在运行第二代码块后,得到动态白盒技术中的白盒密钥文件,该白盒密钥非常小,大概有200多个字节,使得密钥更新较为方便,而且,在更新密钥时,不需要更新白盒库文件,因此,可以简化动态白盒加密流程,且提升密钥的安全性。而且,动态白盒技术可以根据用户的业务需求以及数据处理能力,配置不同的加密强度,使得加密方式更为灵活。

参照图5所示,为本申请提供的白盒密钥文件的下载方法的流程示意图,该生成方法主要包括以下步骤:

该下载方法主要以客户端和白盒密钥服务器这一系统角度进行介绍,该下载方法主要包括以下步骤:

步骤51:客户端提交密钥文件生成请求给服务器。

具体地,客户端接收用户的选取操作触发的选取指令,确定用户选取的第二参数组合;之后,将所述第二参数组合添加到密钥文件生成请求中,并将密钥文件生成请求提交给服务器,这里的提交可以理解为是发送。该密钥文件生成请求中携带有第二参数组合。该第二参数组合中至少包括:算法标识、原始密钥和目标功能这三种类型。

上述白盒密钥文件的生成方案中已经介绍,此处不再赘述。

其实,在本申请中,第二参数组合除了包含上述三种类型的参数之外,还可以包含:设备绑定功能;具体可以是:添加设备绑定功能或是不添加设备绑定功能。具体可以在该第二参数组合中添加客户端的标识。从而,使得该动态白盒技术的处理侧可以针对特定用户进行白盒密钥服务。

步骤52:所述服务器确定与所述密钥文件生成请求匹配的第二代码块;运行所述第二代码块,得到白盒密钥文件,并发送白盒密钥文件给客户端。

具体地,服务器根据接收到的密钥文件生成请求,解析出其携带的第二参数组合,然后,根据该第二参数组合,从与加密算法对应的库中选取与第二参数组合中携带的库文件的标识相匹配的代码库,根据选取的代码库确定对应的第二代码块。

将原始密钥作为输入代入所述第二代码块,输出得到对应所述原始密钥的白盒密钥文件。其中,所述白盒密钥文件可以理解为是经过白盒处理后的白盒密钥,该白盒密钥一般以字符串形式存在。

最后,将得到的白盒密钥文件发送给客户端。

步骤53:所述客户端接收所述服务器反馈的白盒密钥文件,以便于后续根据所述白盒密钥文件以及接收到的白盒库文件进行加解密操作。

客户端接收服务器反馈的白盒密钥文件,并存储,以便于客户端结合白盒库文件对用户输入的明文或者密文进行处理。至此,完成白盒库文件的下载操作。

其实,在本申请中,可以存在同时多个客户端发起白盒库文件生成请求的情况,这时,需要根据每个客户端的标识,分别进行不同的白盒库文件的生成操作,之后,分别发送给与客户端标识对应的客户端。

参照图6(a)所示,为本申请提供的白盒密钥文件的下载方法的流程示意图,该下载方法主要以客户端侧进行介绍,该下载方法主要包括以下步骤:

步骤61:提交密钥文件生成请求给服务器。

步骤62:接收所述服务器根据所述密钥文件生成请求反馈的白盒密钥文件,以便于后续根据所述白盒密钥文件以及接收到的白盒库文件进行加解密操作。

可选地,参照图6(b)所示,在提交密钥文件生成请求给服务器之前,所述方法还包括:

步骤63确定用户选取的第二参数组合,所述第二参数组合至少包括:加密算法标识、适用平台标识、目标功能。

步骤64:生成携带有所述第二参数组合的密钥文件生成请求。

可选地,步骤62具体包括:接收所述服务器根据所述密钥文件生成请求中携带的第二参数组合反馈的白盒密钥文件。

可选地,在本申请中,所述白盒密钥文件通过以下方式确定:

根据确定的第二参数组合,确定与所述第二参数组合匹配的第二代码块;

运行所述第二代码块,得到白盒密钥文件。

通过上述技术方案,采用动态白盒技术,根据接收到的库文件生成请求中携带的第二参数组合,确定相应的第二代码块,并在运行第二代码块后,得到动态白盒技术中的白盒密钥文件,该白盒密钥非常小,大概有200多个字节,使得密钥更新较为方便,而且,在更新密钥时,不需要更新白盒库文件,因此,可以简化动态白盒加密流程,且提升密钥的安全性。而且,动态白盒技术可以根据用户的业务需求以及数据处理能力,配置不同的加密强度,使得加密方式更为灵活。而且,通过该方式还便于客户端灵活下载所需的白盒密钥文件。

参照图7所示,为本申请提供的利用白盒库文件和白盒密钥文件的进行加解密的方法流程示意图,该方法主要包括以下步骤:

步骤71:提交库文件生成请求给服务器,其中,所述库文件生成请求中携带有用户选择的第一参数组合。

步骤72:接收所述服务器根据所述第一参数组合反馈的白盒库文件。

该步骤71与步骤72可参照白盒库文件的生成方案,在此不做赘述。

步骤73:提交密钥文件生成请求给服务器,其中,所述密钥文件生成请求中携带有用户选择的第二参数组合。

步骤74:接收所述服务器根据所述第二参数组合反馈的白盒密钥文件。

该步骤73与步骤74可参照白盒密钥文件的生成方案,在此不做赘述。

需要说明的是,在本申请中,一般情况下,应该先执行白盒库文件的生成方案,在执行白盒密钥文件的生成方案;若在不改变动态白盒方案的情况下,也不排除包含先执行白盒密钥文件的生成方案,再执行白盒库文件的生成方案的顺序。另外,白盒密钥文件的生成方案与白盒库文件的生成方案之间存在库文件的标识这一关联,因此,白盒密钥文件的生成可以是基于白盒库文件的生成。

步骤75:根据所述白盒库文件和所述白盒密钥文件进行加解密处理。

可选地,在本申请中,步骤75具体执行为:

根据所述白盒库文件和所述白盒密钥文件对用户输入的明文进行加密处理,或者,

根据所述白盒库文件和所述白盒密钥文件对用户输入的密文进行解密处理。

可选地,步骤75在根据所述白盒库文件和所述白盒密钥文件对用户输入的明文进行加密处理时,可具体执行为:

第1a步,根据所述白盒密钥文件,确定与原始密钥对应的白盒密钥;

第2a步,根据所述白盒库文件,对所述白盒密钥以及用户输入的明文进行白盒加密处理,得到所述明文对应的密文。

例如,针对原加密算法(如AES算法)的算法A和密钥K,在安全的黑盒环境下加密得到a和k,使得在白盒攻击环境下,加密后的密码系统E(a,k,X)的加密结果恒等于加密系统E(A,K,X)的加密结果。这样,即可实现在不安全的白盒攻击环境下的密钥保护转换为安全的黑盒环境下的密钥保护,从而有效保护原始密钥安全。

或者,

步骤75在根据所述白盒库文件和所述白盒密钥文件对用户输入的密文进行解密处理时,可具体执行为:

第1b步,根据所述白盒密钥文件,确定与原始密钥对应的白盒密钥;

第2b步,根据所述白盒库文件,对所述白盒密钥以及用户输入的密文进行白盒解密处理,得到所述密文对应的明文。

可选地,在本申请中,所述白盒库文件通过以下方式确定:根据接收到的第一参数组合,确定与所述第一参数组合匹配的第一代码块;运行所述第一代码块,随机生成查找表源文件;将所述查找表源文件件进行编译,得到白盒库文件。

可选地,在本申请中,所述白盒密钥文件通过以下方式确定:根据接收到的第二参数组合,确定与所述第二参数组合匹配的第二代码块;运行所述第二代码块,得到白盒密钥文件。

参照图8(a)所示,为本申请提供的白盒库文件的生成装置的结构示意图,该装置主要包括以下功能模块:

确定模块81a,用于根据确定的第一参数组合,确定与所述第一参数组合匹配的代码块。

生成模块82a,用于运行所述第一代码块,随机生成查找表源文件。

编译模块83a,用于对所述查找表源文件进行编译,得到白盒库文件。

所述确定模块,具体用于从接收到的库文件生成请求中确定第一参数组合;根据所述参数组合选取相匹配的代码库对应的第一代码块。

可选地,所述生成模块82a,具体用于运行所述第一代码块,动态随机生成至少一个查找表及对应每个查找表的固定代码,其中,所述固定代码记录有对所述至少一个查找表执行查表操作时的查找规则。

可选地,所述编译模块83a,具体用于将所述至少一个查找表与对应每个查找表的固定代码进行组合;对组合后的所述至少一个查找表以及对应每个查找表的固定代码进行编译,得到白盒库文件。

参照图8(b)所示,为本申请提供的白盒库文件的下载装置的结构示意图,该装置主要包括以下功能模块:

发送模块81b,用于提交库文件生成请求给服务器;

接收模块82b,用于接收所述服务器根据所述库文件生成请求反馈的白盒库文件,以便于后续根据所述白盒库文件以及接收到的密钥文件进行加解密操作。

可选地,仍参照图8(b)所示,所述装置还包括:

确定模块83b,用于在提交库文件生成请求给服务器之前,确定用户选取的参数组合;生成携带有所述参数组合的库文件生成请求;其中,所述参数组合至少包括:加密算法标识、适用平台标识、目标功能。

可选地,所述接收模块82b,具体用于接收所述服务器根据所述库文件生成请求中携带的参数组合反馈的白盒库文件。

其实,在本申请中,白盒库文件的下载装置可以视为下载白盒库文件的系统,包括:客户端和服务器;

所述客户端用于提交库文件生成请求给服务器,并接收所述服务器反馈的白盒库文件,以便于后续根据所述白盒库文件以及接收到的密钥文件进行加解密操作;

所述服务器用于确定与所述库文件生成请求匹配的代码块;运行所述代码块,随机生成查找表源文件;对所述查找表源文件进行编译,将生成的白盒库文件发送给客户端。

参照图8(c)所示,为本申请提供的白盒密钥文件的生成装置的结构示意图,该装置主要包括以下功能模块:

确定模块81c,用于根据确定的第二参数组合,确定与所述第二参数组合匹配的第二代码块。

处理模块82c,用于运行所述第二代码块,得到白盒密钥文件,其中,所述第二参数组合至少包括:加密算法标识、原始密钥、目标功能。

可选地,所述确定模块81c,具体用于:

从接收到的密钥文件生成请求中确定第二参数组合;

根据所述第二参数组合选取相匹配的代码库对应的第二代码块。

可选地,所述第二参数组合中还包括:生成白盒库文件时所选取的库文件的标识;

所述确定模块81c在根据所述第二参数组合选取相匹配的代码库对应的第二代码块时,具体用于:

根据所述第二参数组合中的库文件的标识,选取相匹配的代码库;

确定所述相匹配的代码库中的代码块为第二代码块。

所述处理模块82c,具体用于将原始密钥作为输入代入所述第二代码块,输出得到对应所述原始密钥的白盒密钥文件。

参照图8(d)所示,为本申请提供的白盒密钥文件的下载装置的结构示意图,该装置主要包括以下功能模块:

发送模块81d,用于提交密钥文件生成请求给服务器;

接收模块82d,用于接收所述服务器根据所述密钥文件生成请求反馈的白盒密钥文件,以便于后续根据所述白盒密钥文件以及接收到的白盒库文件进行加解密操作。

可选地,仍参照图8(d)所示,所述装置还包括:

确定模块83d,用于在提交密钥文件生成请求给服务器之前,确定用户选取的第二参数组合,生成携带有所述第二参数组合的密钥文件生成请求;所述第二参数组合至少包括:加密算法标识、适用平台标识、目标功能。

可选地,所述接收模块82d,具体用于接收所述服务器根据所述密钥文件生成请求中携带的第二参数组合反馈的白盒密钥文件。

其实,在本申请中,白盒密钥文件的下载装置可以视为下载白盒密钥文件的系统,包括:客户端和服务器;

所述客户端,用于提交密钥文件生成请求给服务器,以及接收所述服务器反馈的白盒密钥文件,以便于后续根据所述白盒密钥文件以及接收到的白盒库文件进行加解密操作;

所述服务器,用于确定与所述密钥文件生成请求匹配的第二代码块;运行所述第二代码块,得到白盒密钥文件,发送所述白盒密钥文件给所述客户端。

参照图8(e)所示,为本申请提供的利用白盒库文件和白盒密钥文件进行加解密的装置结构示意图,该装置主要包括以下功能模块:

发送模块81e,用于提交库文件生成请求给服务器,其中,所述库文件生成请求中携带有用户选择的第一参数组合;

接收模块82e,用于接收所述服务器根据所述第一参数组合反馈的白盒库文件;

所述发送模块81e,还用于提交密钥文件生成请求给服务器,其中,所述密钥文件生成请求中携带有用户选择的第二参数组合;

所述接收模块82e,还用于接收所述服务器根据所述第二参数组合反馈的白盒密钥文件;

处理模块83e,用于根据所述白盒库文件和所述白盒密钥文件进行加解密处理。

可选地,所述处理模块83e,具体用于:

根据所述白盒库文件和所述白盒密钥文件对用户输入的明文进行加密处理,或者,

根据所述白盒库文件和所述白盒密钥文件对用户输入的密文进行解密处理。

可选地,所述处理模块83e在根据所述白盒库文件和所述白盒密钥文件对用户输入的明文进行加密处理时,具体用于:根据所述白盒密钥文件,确定与原始密钥对应的白盒密钥;根据所述白盒库文件,对所述白盒密钥以及用户输入的明文进行白盒加密处理,得到所述明文对应的密文。

可选地,所述处理模块83e在根据所述白盒库文件和所述白盒密钥文件对用户输入的密文进行解密处理时,具体用于:根据所述白盒密钥文件,确定与原始密钥对应的白盒密钥;根据所述白盒库文件,对所述白盒密钥以及用户输入的密文进行白盒解密处理,得到所述密文对应的明文。

本发明实施例还提供一种移动终端,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述白盒库文件的下载方法,和/或,白盒密钥文件的下载方法,和/或,利用白盒库文件和白盒密钥文件进行加解密方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种服务器设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述白盒库文件的生成方法,和/或,白盒密钥文件的生成方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述白盒库文件的下载方法,和/或,白盒密钥文件的下载方法,和/或,白盒库文件的生成方法,和/或,白盒密钥文件的生成方法,和/或,利用白盒库文件和白盒密钥文件进行加解密方法方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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