CN113656810A - 应用程序加密方法、装置、电子设备及存储介质 - Google Patents

应用程序加密方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113656810A
CN113656810A CN202110811720.6A CN202110811720A CN113656810A CN 113656810 A CN113656810 A CN 113656810A CN 202110811720 A CN202110811720 A CN 202110811720A CN 113656810 A CN113656810 A CN 113656810A
Authority
CN
China
Prior art keywords
matrix
information
application program
target application
lookup table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110811720.6A
Other languages
English (en)
Other versions
CN113656810B (zh
Inventor
安泽伟
史忠伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
58tongcheng Information Technology Co ltd
Original Assignee
58tongcheng Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 58tongcheng Information Technology Co ltd filed Critical 58tongcheng Information Technology Co ltd
Priority to CN202110811720.6A priority Critical patent/CN113656810B/zh
Publication of CN113656810A publication Critical patent/CN113656810A/zh
Application granted granted Critical
Publication of CN113656810B publication Critical patent/CN113656810B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种应用程序加密方法、装置、电子设备及存储介质,涉及软件开发技术领域。所述方法包括:根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,其中,第二矩阵为第一矩阵的逆矩阵;根据第一矩阵以及目标应用程序对应的查找表对目标应用程序的输出信息进行加密,以得到输出信息对应的加密信息;或,根据查找表以及第二矩阵对接收信息进行解密,以得到接收信息对应的输入信息。因此,能够解决相关技术中无法避免二次打包采用黑盒调用的方式对应用程序进行加解密,而导致应用程序的安全性低的问题。

Description

应用程序加密方法、装置、电子设备及存储介质
技术领域
本发明涉及软件开发技术领域,尤其涉及一种应用程序加密方法、装置、电子设备及存储介质。
背景技术
在相关技术中,白盒为攻击者已经完全控制了整个操作过程且对此完全可见,攻击者可以自如地观察动态密码运行过程,并且内部算法的详细内容完全可见,可随意更改。加密是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。
白盒高级加密标准加密法(Advanced Encryption Standard,AES)是由Chow等人于2002年首次提出,主要思想是对现有算法进行调整,把密钥隐藏在算法中,之后对每个部分的输入和输出使用查找表进行计算,从而保护密钥不被猜解。
申请人在实现本发明的过程中,发现相关技术中至少存在以下问题:
该算法虽然可以保护密钥不被破解,但是却没有防止二次打包,黑产团队只要进行二次打包采用黑盒调用的方式就可以进行正常的加解密。
针对上述问题,目前尚未提出有效的解决技术手段。
发明内容
本发明实施例提供一种应用程序加密方法、装置、电子设备及存储介质,以解决相关技术中无法避免二次打包采用黑盒调用的方式对应用程序进行加解密,而导致应用程序的安全性低的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种应用程序加密方法,所述方法包括:根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,其中,所述第二矩阵为所述第一矩阵的逆矩阵;根据所述第一矩阵以及所述目标应用程序对应的查找表对所述目标应用程序的输出信息进行加密,以得到所述输出信息对应的加密信息;或,根据所述查找表以及所述第二矩阵对接收信息进行解密,以得到所述接收信息对应的输入信息。
进一步地,根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,包括:根据所述目标应用程序的应用程序签名以及安装包签名,生成所述第一矩阵以及所述第二矩阵。
进一步地,根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,包括:根据所述目标应用程序的业务标识以及系统环境变量,生成所述第一矩阵以及所述第二矩阵。
进一步地,根据所述第一矩阵以及所述目标应用程序对应的查找表对所述目标应用程序的输出信息进行加密,以得到所述输出信息对应的加密信息,包括:通过所述第一矩阵对所述查找表进行预设运算,以得到加密查找表;在所述加密查找表中对所述输出信息进行匹配,以得到所述加密信息。
进一步地,根据所述查找表以及所述第二矩阵对接收信息进行解密,以得到所述接收信息对应的输入信息,包括:通过所述第二矩阵对所述接收信息进行预设运算,以得到查找信息;通过所述查找表对所述查找信息进行匹配,以得到所述输入信息。
第二方面,本发明实施例另外提供了一种应用程序加密装置,所述装置包括:处理单元,用于根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,其中,所述第二矩阵为所述第一矩阵的逆矩阵;加密单元,用于根据所述第一矩阵以及所述目标应用程序对应的查找表对所述目标应用程序的输出信息进行加密,以得到所述输出信息对应的加密信息;解密单元,用于根据所述查找表以及所述第二矩阵对接收信息进行解密,以得到所述接收信息对应的输入信息。
进一步地,所述处理单元包括:第一处理模块,用于根据所述目标应用程序的应用程序签名以及安装包签名,生成所述第一矩阵以及所述第二矩阵。
进一步地,所述处理单元包括:第二处理模块,用于根据所述目标应用程序的业务标识以及系统环境变量,生成所述第一矩阵以及所述第二矩阵。
进一步地,所述加密单元包括:加密模块,用于通过所述第一矩阵对所述查找表进行预设运算,以得到加密查找表;所述加密模块,还用于在所述加密查找表中对所述输出信息进行匹配,以得到所述加密信息。
进一步地,所述解密单元包括:解密模块,用于通过所述第二矩阵对所述接收信息进行预设运算,以得到查找信息;所述解密模块,还用于通过所述查找表对所述查找信息进行匹配,以得到所述输入信息。
第三方面,本发明实施例另外提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的应用程序加密方法的步骤。
第四方面,本发明实施例另外提供了一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的应用程序加密方法的步骤。
在本发明实施例中,根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,其中,第二矩阵为第一矩阵的逆矩阵;根据第一矩阵以及目标应用程序对应的查找表对目标应用程序的输出信息进行加密,以得到输出信息对应的加密信息;或,根据查找表以及第二矩阵对接收信息进行解密,以得到接收信息对应的输入信息。通过应用程序信息生成的第一矩阵对查找表进行加密,使得内存中不存在密钥,使得查找表与应用程序唯一绑定,且无法伪造,从而有效避免二次打包调用的风险。解决了相关技术中无法避免二次打包采用黑盒调用的方式对应用程序进行加解密,而导致应用程序的安全性低的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种应用程序加密方法的流程示意图;
图2是本发明实施例中的一种应用程序加密装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
在介绍本发明的技术方案之前,首先对以下名词进行解释:
二次打包:对移动应用进行破解、再篡改或插入恶意代码、最后生成一个新应用的过程。
白盒:即攻击者已经完全控制了整个操作过程且对此完全可见,攻击者可以自如地观察动态密码运行过程,并且内部算法的详细内容完全可见,可随意更改。
加密:是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。
本实施例中的应用程序加密方法,主要用于保护目标应用程序中的应用数据,应用数据包括但不限于需要对处于白盒环境中的目标应用程使用白盒AES加密。在实际的应用场景中,白盒AES加密具体可以包括如下步骤:
S1,调整边界,将AES的第一次轮钥加调整进加密循环中,同时将第九次的轮钥加调整到循环之外;
S2,由于行变换是线性变换,所以可以和轮钥加进行位置的更换,但需要对该轮密钥做变换;白盒加密的第二步就是调整行变换和轮钥加的位置;
S3,对循环内的轮钥加和字节替换进行合并,并利用查找表进行替换,末轮运算的查找表多一次轮钥加,该步的查找表定义为Tbox;
S4,列混淆是使用的矩阵乘法,结合数学公式可以将该步变为两次查表TyiTables和XORTables;
S5,再次整合Tbox和TyiTables生成查找表TBoxesTyiTables。
通过上述步骤S1-S5,实现在白盒环境中对目标应用程序进加密。
在本发明实施例中,提供了一种应用程序加密方法,如图1所示,该方法具体可以包括以下步骤:
S102,根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,其中,第二矩阵为第一矩阵的逆矩阵;
在本实施例中,通过目标应用程序的应用程序信息生成一组互相可逆的第一矩阵以及第二矩阵,第一矩阵与第二矩阵分别为可逆矩阵以及逆矩阵。其中,第一矩阵以及第二矩阵与目标应用程序的应用程序信息绑定。
通过第一矩阵为目标应用程序中的应用数据进行加密,然后通过第二矩阵对应用数据进行解密。然后可以通过应用程序信息绑定的第一矩阵或第二矩阵与查找表的查找结果验证目标应用程序是否进行了二次打包。
具体地,若第一矩阵为Msign,及第二矩阵为MSign-1,以上述查找表TBoxesTyiTables为例。MSign*MSign-1*TBoxesTyiTables=TBoxesTyiTables,所以可以将可逆矩阵MSign参与查找表生成运算,在加密算法时再乘以逆矩阵MSign-1从保持结果不变。
在本实施例中,应用程序信息包括但不限于目标应用程序的应用程序签名、安装包签名、版本号、业务标识以及目标应用程序运行的环境变量。
通过将目标应用程序的应用程序信息转化为字符串,然后根据字符串生成对应的第一矩阵以及第二矩阵,以实现第一矩阵以及第二矩阵与应用程序信息的绑定。
S104,根据第一矩阵以及目标应用程序对应的查找表对目标应用程序的输出信息进行加密,以得到输出信息对应的加密信息;或,
S106,根据查找表以及第二矩阵对接收信息进行解密,以得到接收信息对应的输入信息;
本实施例中目标应用程序的查找表是指的如上述步骤S5中得到的TBoxesTyiTables。即,在本实施例中的查找表是指经过白盒AES加密后得到的查找表。
具体地,在本实施例中,通过第一矩阵对目标应用程序的查找表进行加密,来得到查找表对应的加密查找表,然后通过加密查找表对输出信息进行加密,得到经过加密的输出信息对应的加密信息。
另一方面,通过第二矩阵对接收信息进行解密,然后使得解密后的接收信息能够在查找表中进行查找,进而可以得到接收信息对应的输入信息。
需要说明的是,本实施例中,根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,其中,第二矩阵为第一矩阵的逆矩阵;根据第一矩阵以及目标应用程序对应的查找表对目标应用程序的输出信息进行加密,以得到输出信息对应的加密信息;或,根据查找表以及第二矩阵对接收信息进行解密,以得到接收信息对应的输入信息。通过第一矩阵以及第二矩阵对目标应用程序的查找表进行加密或解密,改变了传统AES的算法逻辑,改为加密查找表,使得终端内存中不存在目标应用程序原有的秘钥,避免二次打包调用的风险。
可选地,在本实施例中,根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,包括但不限于:根据目标应用程序的应用程序签名以及安装包签名,生成第一矩阵以及第二矩阵。
具体地,在本实施例中,获取目标应用程序的应用程序签名、目标应用程序的安装包签名等,确定第一矩阵的预设维数,根据应用程序签名以及安装包签名组成的字符串填充至预设维数,以得到第一矩阵,然后获取第一矩阵的逆矩阵,即第二矩阵。
在一个例子中,若目标应用程序的应用程序签名为“BMC001321”,安装包签名为“BMC210115”,通过将应用程序签名已经安装包签名合并为字符串“BMC001321BMC210115”,然后对字符串进行数值转化,确定第一矩阵的维数为32,按照预设规则将字符串填充至维数32的矩阵,以得到第一矩阵,然后根据第一矩阵获取对应的逆矩阵。
通过上述实施例,根据目标应用程序的应用程序签名以及安装包签名,来得到第一矩阵以及第二矩阵,使得第一矩阵以及第二矩阵与目标应用程序的应用程序签名以及安装包的版本相绑定,以避免目标应用程序被破解调用。
可选地,在本实施例中,根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,包括但不限于:根据目标应用程序的业务标识以及系统环境变量,生成第一矩阵以及第二矩阵。
具体地,在本实施例中,可以根据目标应用程序的业务标识以及系统环境变量来获取第一矩阵以及第二矩阵。确定第一矩阵的预设维数,根据业务标识以及系统环境变量组成的字符串填充至预设维数,以得到第一矩阵,然后获取第一矩阵的逆矩阵,即第二矩阵。
需要说明的是,业务标识用于指示目标应用程序所支持的业务功能,即业务代码;系统环境变量为目标应用程序所处的操作系统的系统标识码。
通过上述实施例,根据目标应用程序的业务标识以及系统环境变量,生成第一矩阵以及第二矩阵,提高了目标应用程序的安全性。
可选地,在本实施例中,根据第一矩阵与目标应用程序对应的查找表对输出信息进行加密,以得到加密结果,包括但不限于:通过第一矩阵对查找表进行预设运算,以得到加密查找表;在加密查找表中对输入信息进行匹配,以得到加密信息。
具体地,在本实施例中,通过第一矩阵对查找表进行预设运算,来对查找表进行加密,以得到加密查找表。例如,通过第一矩阵对查找表进行矩阵乘运算,以实现对查找表进行加密。然后根据输出信息在加密查找表中进行查找,以得到输出信息对应的加密信息。
可选地,在本实施例中,根据查找表以及第二矩阵对加密信息进行解密,以得到输入信息对应的输入数据,包括但不限于:通过第二矩阵对加密信息进行预设运算,以得到查找信息;通过查找表对查找信息进行匹配,以得到输入数据。
具体地,在本实施例中,在目标应用程序接收到经过加密的输入信息时,首先通过第二矩阵对输入信息进行预设运算,以实现对输入信息进行解密,具体的可以通过第二矩阵对输入信息进行矩阵乘运算,得到查找信息。然后在查找表中对查找信息进行匹配,以得到输入信息对应的查找结果,即输入数据。
通过上述实施例,根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,其中,第二矩阵为第一矩阵的逆矩阵;根据第一矩阵以及目标应用程序对应的查找表对目标应用程序的输入信息进行加密,以得到输入信息对应的加密信息;根据查找表以及第二矩阵对加密信息进行解密,以得到输入信息对应的输入数据。通过应用程序信息生成的第一矩阵对查找表进行加密,使得内存中不存在密钥,使得查找表与应用程序唯一绑定,且无法伪造,从而有效避免二次打包调用的风险。解决了相关技术中无法避免二次打包采用黑盒调用的方式对应用程序进行加解密,而导致应用程序的安全性低的问题。
实施例二
详细介绍本发明实施例提供的一种应用程序加密装置装置。
参照图2,示出了本发明实施例中一种应用程序加密装置的结构示意图。
本发明实施例的应用程序加密装置包括:处理单元20,加密单元22、解密单元24。
下面分别详细介绍各模块的功能以及各模块之间的交互关系。
处理单元20,用于根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,其中,所述第二矩阵为所述第一矩阵的逆矩阵;
加密单元22,用于根据所述第一矩阵以及所述目标应用程序对应的查找表对所述目标应用程序的输出信息进行加密,以得到所述输出信息对应的加密信息;;
解密单元24,用于根据所述查找表以及所述第二矩阵对接收信息进行解密,以得到所述接收信息对应的输入信息。
可选地,在本实施例中,所述处理单元20包括:第一处理模块,用于根据所述目标应用程序的应用程序签名以及安装包签名,生成所述第一矩阵以及所述第二矩阵。
可选地,在本实施例中,所述处理单元20包括:第二处理模块,用于根据所述目标应用程序的业务标识以及系统环境变量,生成所述第一矩阵以及所述第二矩阵。
可选地,在本实施例中,所述加密单元22包括:加密模块,用于通过所述第一矩阵对所述查找表进行预设运算,以得到加密查找表;所述加密模块,还用于在所述加密查找表中对所述输出信息进行匹配,以得到所述加密信息。
可选地,在本实施例中,所述解密单元24包括:解密模块,用于通过所述第二矩阵对所述接收信息进行预设运算,以得到查找信息;所述解密模块,还用于通过所述查找表对所述查找信息进行匹配,以得到所述输入信息。
而且,通过上述实施例,根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,其中,第二矩阵为第一矩阵的逆矩阵;根据第一矩阵以及目标应用程序对应的查找表对目标应用程序的输入信息进行加密,以得到输入信息对应的加密信息;根据查找表以及第二矩阵对加密信息进行解密,以得到输入信息对应的输入数据。通过应用程序信息生成的第一矩阵对查找表进行加密,使得内存中不存在密钥,使得查找表与应用程序唯一绑定,且无法伪造,从而有效避免二次打包调用的风险。解决了相关技术中无法避免二次打包采用黑盒调用的方式对应用程序进行加解密,而导致应用程序的安全性低的问题。
实施例三
优选的,本发明实施例还提供了一种电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如实施例一所述的应用程序加密方法的步骤。
该计算机程序被处理器执行时实现上述应用程序加密方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
实施例四
本发明实施例还提供了一种存储介质,该存储介质包括但不限于计算机可读存储介质,该存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述应用程序加密方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的存储介质,如只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccess Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种应用程序加密方法,其特征在于,所述方法包括:
根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,其中,所述第二矩阵为所述第一矩阵的逆矩阵;
根据所述第一矩阵以及所述目标应用程序对应的查找表对所述目标应用程序的输出信息进行加密,以得到所述输出信息对应的加密信息;或,
根据所述查找表以及所述第二矩阵对接收信息进行解密,以得到所述接收信息对应的输入信息。
2.根据权利要求1所述的方法,其特征在于,根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,包括:
根据所述目标应用程序的应用程序签名以及安装包签名,生成所述第一矩阵以及所述第二矩阵。
3.根据权利要求1所述的方法,其特征在于,根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,包括:
根据所述目标应用程序的业务标识以及系统环境变量,生成所述第一矩阵以及所述第二矩阵。
4.根据权利要求1所述的方法,其特征在于,根据所述第一矩阵以及所述目标应用程序对应的查找表对所述目标应用程序的输出信息进行加密,以得到所述输出信息对应的加密信息,包括:
通过所述第一矩阵对所述查找表进行预设运算,以得到加密查找表;
在所述加密查找表中对所述输出信息进行匹配,以得到所述加密信息。
5.根据权利要求1所述的方法,其特征在于,根据所述查找表以及所述第二矩阵对接收信息进行解密,以得到所述接收信息对应的输入信息,包括:
通过所述第二矩阵对所述接收信息进行预设运算,以得到查找信息;
通过所述查找表对所述查找信息进行匹配,以得到所述输入信息。
6.一种应用程序加密装置,其特征在于,所述装置包括:
处理单元,用于根据目标应用程序的应用程序信息生成对应的第一矩阵以及第二矩阵,其中,所述第二矩阵为所述第一矩阵的逆矩阵;
加密单元,用于根据所述第一矩阵以及所述目标应用程序对应的查找表对所述目标应用程序的输出信息进行加密,以得到所述输出信息对应的加密信息;
解密单元,用于根据所述查找表以及所述第二矩阵对接收信息进行解密,以得到所述接收信息对应的输入信息。
7.根据权利要求6所述的装置,其特征在于,所述处理单元包括:
第一处理模块,用于根据所述目标应用程序的应用程序签名以及安装包签名,生成所述第一矩阵以及所述第二矩阵。
8.根据权利要求6所述的装置,其特征在于,所述处理单元包括:
第二处理模块,用于根据所述目标应用程序的业务标识以及系统环境变量,生成所述第一矩阵以及所述第二矩阵。
9.根据权利要求6所述的装置,其特征在于,所述加密单元包括:
加密模块,用于通过所述第一矩阵对所述查找表进行预设运算,以得到加密查找表;
所述加密模块,还用于在所述加密查找表中对所述输出信息进行匹配,以得到所述加密信息。
10.根据权利要求6所述的装置,其特征在于,所述解密单元包括:
解密模块,用于通过所述第二矩阵对所述接收信息进行预设运算,以得到查找信息;
所述解密模块,还用于通过所述查找表对所述查找信息进行匹配,以得到所述输入信息。
11.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的应用程序加密方法的步骤。
12.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的应用程序加密方法的步骤。
CN202110811720.6A 2021-07-16 2021-07-16 应用程序加密方法、装置、电子设备及存储介质 Active CN113656810B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110811720.6A CN113656810B (zh) 2021-07-16 2021-07-16 应用程序加密方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110811720.6A CN113656810B (zh) 2021-07-16 2021-07-16 应用程序加密方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113656810A true CN113656810A (zh) 2021-11-16
CN113656810B CN113656810B (zh) 2024-07-12

Family

ID=78477449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110811720.6A Active CN113656810B (zh) 2021-07-16 2021-07-16 应用程序加密方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113656810B (zh)

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473104A (zh) * 2013-09-24 2013-12-25 北京大学 一种基于关键词上下文频率矩阵的应用重打包辨别方法
US20140101458A1 (en) * 2010-11-05 2014-04-10 Apple Inc. Code tampering protection for insecure environments
US20150186627A1 (en) * 2013-12-26 2015-07-02 Nxp B.V. Secure software compnents anti-reverse-engineering by table interleaving
US20150324302A1 (en) * 2014-05-12 2015-11-12 Electronics And Telecommunications Research Institute White box encryption system and method
CN106330435A (zh) * 2015-07-02 2017-01-11 中兴通讯股份有限公司 一种密钥变换方法、装置及终端
US20180157808A1 (en) * 2015-08-10 2018-06-07 Line Corporation System and method for code obfuscation of application
CN108416224A (zh) * 2018-02-13 2018-08-17 北京梆梆安全科技有限公司 一种数据加解密方法及装置
CN108494546A (zh) * 2018-02-13 2018-09-04 北京梆梆安全科技有限公司 一种白盒加密方法、装置及存储介质
CN109634641A (zh) * 2018-12-28 2019-04-16 北京城市网邻信息技术有限公司 一种应用程序更新方法、装置、电子设备及介质
CN110619219A (zh) * 2019-07-31 2019-12-27 广州亚美信息科技有限公司 应用程序源码保护方法、装置、计算机设备和存储介质
CN111314051A (zh) * 2018-12-11 2020-06-19 北京思源理想控股集团有限公司 一种加解密方法和装置
CN111314050A (zh) * 2018-12-11 2020-06-19 北京思源理想控股集团有限公司 一种加解密方法及装置
US20200313850A1 (en) * 2019-03-29 2020-10-01 Irdeto Canada Corporation Method and apparatus for implementing a white-box cipher
CN111737689A (zh) * 2020-06-10 2020-10-02 北京奇艺世纪科技有限公司 数据处理方法、处理器、电子设备、存储介质及程序产品
CN111800255A (zh) * 2020-06-08 2020-10-20 北京电子科技学院 一种适用于分组密码白盒化的动态白盒库生成和使用方法
CN111931222A (zh) * 2020-09-30 2020-11-13 腾讯科技(深圳)有限公司 应用数据加密方法、装置、终端及存储介质
CN112199696A (zh) * 2020-10-09 2021-01-08 西安电子科技大学 基于白盒分组密码的加解密方法
CN112632277A (zh) * 2020-12-15 2021-04-09 五八同城信息技术有限公司 一种目标内容对象的资源处理方法和装置

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140101458A1 (en) * 2010-11-05 2014-04-10 Apple Inc. Code tampering protection for insecure environments
CN103473104A (zh) * 2013-09-24 2013-12-25 北京大学 一种基于关键词上下文频率矩阵的应用重打包辨别方法
US20150186627A1 (en) * 2013-12-26 2015-07-02 Nxp B.V. Secure software compnents anti-reverse-engineering by table interleaving
US20150324302A1 (en) * 2014-05-12 2015-11-12 Electronics And Telecommunications Research Institute White box encryption system and method
CN106330435A (zh) * 2015-07-02 2017-01-11 中兴通讯股份有限公司 一种密钥变换方法、装置及终端
US20180157808A1 (en) * 2015-08-10 2018-06-07 Line Corporation System and method for code obfuscation of application
CN108416224A (zh) * 2018-02-13 2018-08-17 北京梆梆安全科技有限公司 一种数据加解密方法及装置
CN108494546A (zh) * 2018-02-13 2018-09-04 北京梆梆安全科技有限公司 一种白盒加密方法、装置及存储介质
CN111314051A (zh) * 2018-12-11 2020-06-19 北京思源理想控股集团有限公司 一种加解密方法和装置
CN111314050A (zh) * 2018-12-11 2020-06-19 北京思源理想控股集团有限公司 一种加解密方法及装置
CN109634641A (zh) * 2018-12-28 2019-04-16 北京城市网邻信息技术有限公司 一种应用程序更新方法、装置、电子设备及介质
US20200313850A1 (en) * 2019-03-29 2020-10-01 Irdeto Canada Corporation Method and apparatus for implementing a white-box cipher
CN110619219A (zh) * 2019-07-31 2019-12-27 广州亚美信息科技有限公司 应用程序源码保护方法、装置、计算机设备和存储介质
CN111800255A (zh) * 2020-06-08 2020-10-20 北京电子科技学院 一种适用于分组密码白盒化的动态白盒库生成和使用方法
CN111737689A (zh) * 2020-06-10 2020-10-02 北京奇艺世纪科技有限公司 数据处理方法、处理器、电子设备、存储介质及程序产品
CN111931222A (zh) * 2020-09-30 2020-11-13 腾讯科技(深圳)有限公司 应用数据加密方法、装置、终端及存储介质
CN112199696A (zh) * 2020-10-09 2021-01-08 西安电子科技大学 基于白盒分组密码的加解密方法
CN112632277A (zh) * 2020-12-15 2021-04-09 五八同城信息技术有限公司 一种目标内容对象的资源处理方法和装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
卢致旭: "基于白盒加密算法的软件防篡改技术研究", 《基于白盒加密算法的软件防篡改技术研究 *
崔西宁;董星廷;牟明;吴姣;: "白盒攻击环境下的任务规划系统安全传输方法", 计算机应用, no. 02 *
彭守镇;: "Android APP加固方案的研究", 软件工程, no. 06 *
李锟华;杜英国;桑志强;: "基于矩阵加密生成软件注册码的设计与应用", 电脑知识与技术, no. 33 *
樊如霞;房鼎益;汤战勇;陈晓江;刘方圆;李政桥;: "一种代码碎片化的Android应用程序防二次打包方法", 小型微型计算机系统, no. 09 *

Also Published As

Publication number Publication date
CN113656810B (zh) 2024-07-12

Similar Documents

Publication Publication Date Title
EP2924677B1 (en) Splitting s-boxes in a white-box implementation to resist attacks
EP3174238B1 (en) Protecting white-box feistel network implementation against fault attack
EP3169017B1 (en) Split-and-merge approach to protect against dfa attacks
CN110235409A (zh) 使用同态加密被保护的rsa签名或解密的方法
US9602273B2 (en) Implementing key scheduling for white-box DES implementation
CN106888081B (zh) 白盒实施方案内中间值的宽编码
CN107273724B (zh) 为白盒实施方案的输入和输出加水印
CN105184115A (zh) 用于将隐式完整性或可信性检查包括到白箱实现中的方法
CN105978680B (zh) 一种加密钥的加密运算方法
EP3035584B1 (en) Using single white-box implementation with multiple external encodings
CN105281893B (zh) 用于引入白箱实现对串集合的依赖性的方法
Xu et al. A white-box AES-like implementation based on key-dependent substitution-linear transformations
EP3413509B1 (en) Cmac computation using white-box implementations with external encodings
EP2940917A1 (en) Behavioral fingerprint in a white-box implementation
US20210143978A1 (en) Method to secure a software code performing accesses to look-up tables
CN113656810B (zh) 应用程序加密方法、装置、电子设备及存储介质
EP2940677A1 (en) Method for including an implicit integrity or authenticity check into a white-box implementation
EP2940920B1 (en) Security patch without changing the key
CN106611130A (zh) 一种文件处理方法和装置
CN117807614A (zh) 基于cp-abe的机器人数据安全保护方法、系统及介质
KR101281275B1 (ko) 부울 함수 표현을 이용한 블록암호 암/복호화 과정의 난독화 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant