CN112054896A - 白盒加密方法、装置、终端及存储介质 - Google Patents
白盒加密方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN112054896A CN112054896A CN202010807307.8A CN202010807307A CN112054896A CN 112054896 A CN112054896 A CN 112054896A CN 202010807307 A CN202010807307 A CN 202010807307A CN 112054896 A CN112054896 A CN 112054896A
- Authority
- CN
- China
- Prior art keywords
- round
- ciphertext
- plaintext
- encryption
- confusion
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请属于终端技术领域,具体而言,涉及一种白盒加密方法、装置、终端及存储介质。其中,一种白盒加密方法,包括:获取待加密的明文;对上一轮混淆加密的所述明文进行混淆还原,得到第一密文;根据当前轮随机种子对所述第一密文进行混淆加密,并输入至下一轮;将所述下一轮确定为当前轮,并执行所述对上一轮混淆加密的所述明文进行混淆还原,得到第一密文的步骤;当确定为最后一轮时,输出所述明文对应的密文。因此,终端对待加密的明文进行加密时,可以在当前轮随机种子对密文进行混淆加密时进行混淆运算,可以减少状态矩阵的泄露和破解风险,可以提高白盒加密的安全性。
Description
技术领域
本申请属于终端技术领域,具体而言,涉及一种白盒加密方法、装置、终端及存储介质。
背景技术
随着科学技术的不断发展,电脑、智能手机等电子设备随处可见,信息交互日益频繁。由于密码攻击技术的不断发展,攻击者会对加密服务的运行平台进行攻击。在对密码运行环境完全掌控的情况下,攻击者很容易攻击成功加密服务的运行平台。白盒攻击是通过运行状态监控的方式获取机密信息的方式。对此可以使用白盒加密算法抵挡白盒攻击。
发明内容
本申请实施例提供一种白盒加密方法、装置、终端及存储介质,可以提高白盒加密的安全性。本技术方案包括:
第一方面,本申请实施例提供一种白盒加密方法,所述方法包括:
获取待加密的明文;
对上一轮混淆加密的所述明文进行混淆还原,得到第一密文;
根据当前轮随机种子对所述第一密文进行混淆加密,并输入至下一轮;
将所述下一轮确定为当前轮,并执行所述对上一轮混淆加密的所述明文进行混淆还原,得到第一密文的步骤;
当确定为最后一轮时,输出所述明文对应的密文。
第二方面,本申请实施例提供一种白盒加密装置,所述装置包括:
明文获取单元,用于获取待加密的明文;
明文还原单元,用于对上一轮混淆加密的所述明文进行混淆还原,得到第一密文;
密文加密单元,用于根据当前轮随机种子对所述第一密文进行混淆加密,并输入至下一轮;
当前轮确定单元,用于将所述下一轮确定为当前轮,并执行所述对上一轮混淆加密的所述明文进行混淆还原,得到第一密文的步骤;
密文输出单元,用于当确定为最后一轮时,输出所述明文对应的密文。
第三方面,本申请实施例提供一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,其中,上述计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
本申请实施例提供一种白盒加密方法,通过获取待加密的明文,可以根据当前轮随机种子对上一轮的密文进行混淆加密,并输入至下一轮,将下一轮确定为当前轮,并执行对上一轮混淆加密的明文进行混淆还原,得到第一密文的步骤,直至确定为最后一轮时,输出明文对应的密文。因此,终端对待加密的明文进行加密时,可以在当前轮随机种子对密文进行混淆加密时进行混淆运算,可以减少状态矩阵的泄露和破解风险,可以提高白盒加密的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出应用于本申请实施例的白盒加密方法或者白盒加密装置的应用场景示意图;
图2示出本申请实施例的一种白盒加密方法的流程示意图;
图3示出本申请实施例的一种终端界面的举例示意图;
图4示出本申请实施例的一种白盒加密方法的流程示意图;
图5示出本申请实施例的一种白盒加密方法的流程示意图;
图6示出本申请实施例的一种白盒加密方法的流程示意图;
图7示出本申请实施例的一种白盒加密方法的流程示意图;
图8示出本申请实施例的一种白盒加密方法的流程示意图;
图9示出本申请实施例的一种白盒加密装置的结构示意图;
图10示出本申请实施例的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅为本申请实施例的一部分,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着科学技术的不断发展,电脑、智能手机等电子设备随处可见,信息交互日益频繁。在密码攻击技术日益进步的环境下,攻击者会对加密服务的运行平台进行攻击。白盒攻击是通过运行状态监控的方式获取机密信息的方式。对此可以使用白盒加密算法抵挡白盒攻击。
根据一些实施例,图1示出应用于本申请实施例的白盒加密方法或者白盒加密装置的应用场景示意图。如图1所示,白盒加密是在零信任环境下将密钥隐藏在加密过程中,通过查表的方式完成明文的加密。对于AES白盒加密而言,鉴于加密算法的公开性,在白盒加密过程中会出现暴露标准加密状态下的中间状态矩阵数据的情况,基于此,可以逆向运算推导得到轮密钥,进而还原出原密钥。
易于理解的是,AES白盒加密技术例如可以将常规加密过程中涉及密钥的轮密钥加(AddRoundKey)步骤及字节替换(SubBytes)步骤进行整合,形成数据查找表(look_uptable),即T-Box的实现。因此为了提高白盒加密的安全性,可以对T-Boxes的边界进行扩大,以便对中间状态矩阵进行保护。但是无论T-Boxes的边界如何扩大,都无法避免常规AES加解密过程中的中间状态矩阵的暴露,因此基于AES加密算法的开源性,在通过内存监控等手段获取到中间状态矩阵后,可以利用常规加密的逆运算得到原始的扩展密钥,而一旦得到了扩展密钥,原始密钥也将通过密钥扩展的逆运算还原得到。因此T-Boxes边界的扩大并不能提高获取原始密钥的难度,使得白盒加密的安全性较低。本申请实施例提供一种白盒加密方法,可以提高白盒加密的安全性。
易于理解的是,为了提高白盒加密的安全性,还可以在白盒加密过程中国使用大型仿射变换,但是大型仿射变换中存在大量的矩阵运算,大量的矩阵运算使得白盒加密的步骤复杂,白盒加密的执行效率较低。本申请实施例提供一种白盒加密方法,可以提高白盒加密的执行效率。
下面将结合附图2-附图8,对本申请实施例提供的白盒加密方法进行详细介绍。附图2-附图8所示实施例的执行主体例如可以为终端。
请参见图2,为本申请实施例提供了一种白盒加密方法的流程示意图。如图2所示,本申请实施例的所述方法可以包括以下步骤S101-步骤S105。
S101,获取待加密的明文。
根据一些实施例,明文是指未进行加密的数据,包括但不限于文本数据或者字符串数据。该明文包括但不限于文本数据、图片数据、数字语音数据、动画数据和数字视频数据。本申请实施例的明文例如可以是文本数据。
易于理解的是,待加密的明文可以是终端通过接收用户的明文输入指令获取到的,还可以是终端读取终端存储器中存储的明文获取到的。其中,用户的明文输入指令包括但不限于语音输入指令、点击输入指令、文字输入指令等等。本申请实施例的明文输入指令例如可以是语音输入指令。
可选的,本申请实施例的技术方案可以用于AES白盒加密过程。高级加密标准(Advanced Encryption Standard,AES)为最常见的对称加密算法,对称加密算法是加密过程和解密过程中使用相同的密钥,可以用于频繁传输数据的场合。
根据一些实施例,当终端接收到针对明文的加密指令时,终端可以获取待加密的明文。加密指令包括但不限于语音加密指令、点击加密指令、定时加密指令、点击加密指令以及其他可实现的触发操作指令。根据一些实施例,本申请实施例的加密指令例如可以是点击加密指令。该点击加密指令可以是用户在终端显示界面针对加密控件输入的点击加密指令。此时,终端界面的举例示意图可以如图3所示。当终端检测到用户点击终端显示界面的加密控件时,终端可以接收到该点击加密指令。当终端接收到该点击加密指令时,终端可以获取待加密的明文。
S102,对上一轮混淆加密的明文进行混淆还原,得到第一密文。
根据一些实施例,第一密文是指终端对待加密的明文进行第一轮加密处理后输出的密文。该第一密文并不特指某一固定密文,例如终端获取到的待加密的明文发生变化时,终端得到的第一密文也会发生相应变化。
易于理解的是,当终端对待加密的明文加密时,终端可以获取到对明文的加密轮数。当终端获取到加密轮数时,终端可以对待加密的明文进行加密。当终端获取到上一轮混淆加密的明文时,终端已经对待加密的明文进行第一轮的白盒加密处理。因此,终端对上一轮混淆加密的明文进行混淆还原,得到第一密文,可以是终端对第一轮混淆加密的明文进行混淆还原,得到第一密文。
可选的,终端获取到的待加密的明文例如可以是a。终端获取到的上一轮混淆加密的明文例如可以是第一轮混淆加密的明文b1。当终端获取到第一轮混淆加密的明文b1时,终端可以对第一轮混淆加密的明文进行混淆还原,得到第一密文a1。
S103,根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮。
根据一些实施例,当前轮是加密轮数中除去第一轮和最后一轮的第一轮,即加密轮数中的第二轮。当前轮随机种子可以是第二轮随机种子。当终端对上一轮混淆加密的明文进行混淆还原,得到第一密文时,终端可以获取当前轮随机种子。当前轮随机种子可以是基于上一轮随机种子生成的。当终端获取到当前轮随机种子时,终端可以根据当前轮随机种子对第一密文进行混淆加密处理,并将加密处理后的第一密文输入至下一轮。
易于理解的是,当前轮例如可以是第二轮。当终端获取到第一轮混淆加密的明文b1时,终端可以对该混淆加密的明文b1进行混淆还原,得到第一密文a1。此时终端可以获取第二轮随机种子,终端获取到的第二轮随机种子例如可以是89。当终端获取到第二轮随机种子时,终端可以根据该第二轮随机种子对第一密文a1进行混淆加密,得到第二轮混淆加密的明文b2。终端可以将第二轮混淆加密的明文b2输入至第三轮。
S104,将下一轮确定为当前轮,并执行对上一轮混淆加密的明文进行混淆还原,得到第一密文的步骤。
根据一些实施例,当终端根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮时,终端可以检测下一轮是否为最后一轮。当终端检测到下一轮不是最后一轮时,终端可以将下一轮确定为当前轮,并执行对上一轮混淆加密的明文进行混淆还原,得到第一密文的步骤。其中,终端检测下一轮是否为最后一轮时,终端可以基于预先确定的加密轮数和已经加密轮数进行检测。
易于理解的是,当前轮例如可以是第二轮。当终端获取到第一轮混淆加密的明文b1时,终端可以对该混淆加密的明文b1进行混淆还原,得到第一密文a1。此时终端可以获取第二轮随机种子,终端获取到的第二轮随机种子例如可以是89。当终端获取到第二轮随机种子时,终端可以根据该第二轮随机种子对第一密文a1进行混淆加密,得到第二轮混淆加密的明文b2。终端可以将第二轮混淆加密的明文b2输入至第三轮。此时,终端可以将第三轮确定为当前轮。终端可以对第二轮混淆加密的明文b2进行混淆还原,得到第二密文a2。此时终端可以获取第三轮随机种子,终端获取到的第三轮随机种子例如可以是99。当终端获取到第三轮随机种子时,终端可以根据该第三轮随机种子对第二密文a2进行混淆加密,得到第三轮混淆加密的明文b3。终端可以将第三轮混淆加密的明文b3输入至第四轮。
S105,当确定为最后一轮时,输出明文对应的密文。
根据一些实施例,当终端确定当前轮为最后一轮时,终端可以输出明文对应的密文。例如终端将下一轮确定为当前轮之后,在执行对上一轮混淆加密的明文进行混淆还原,得到第一密文的步骤之前,终端可以检测当前轮是否为最后一轮。当终端检测到当前轮为最后一轮时,终端不会执行对上一轮混淆加密的明文进行混淆还原,得到第一密文的步骤,终端可以输出明文对应的密文。终端输出明文对应的密文时,终端可以对上一轮的混淆加密的明文进行混淆还原,并对混淆还原后的上一轮密文进行加密处理,输出明文对应的密文。
易于理解的是,终端获取到的加密轮数为10轮。当终端确定当前轮为第10轮时,终端可以对第9轮的混淆加密的明文进行混淆还原,并对混淆还原后的上一轮密文进行加密处理,输出明文对应的密文。
根据一些实施例,当终端获取到明文对应的密文时,终端可以将该密文发送至对应的接收终端。接收终端接收到该密文时,可以对该密文进行解密,获取到该密文对应的明文。
本申请实施例提供一种白盒加密方法,通过获取待加密的明文,可以根据当前轮随机种子对上一轮的密文进行混淆加密,并输入至下一轮,将下一轮确定为当前轮,并执行对上一轮混淆加密的明文进行混淆还原,得到第一密文的步骤,直至确定为最后一轮时,输出明文对应的密文。因此,终端对待加密的明文进行加密时,可以在当前轮随机种子对密文进行混淆加密时进行混淆运算,随机种子的随机性可以减少明文矩阵的泄露和破解风险,可以提高白盒加密的安全性。另外,终端对待加密的明文进行加密时,不需要对待加密的明文进行仿射变换,可以减少白盒加密的计算过程,可以提高白盒加密的执行效率。
请参见图4,为本申请实施例提供了一种白盒加密方法的流程示意图。如图4所示,本申请实施例的所述方法可以包括以下步骤S201-步骤S210。
S201,获取待加密的明文。
具体过程如上所述,此处不再赘述。
S202,将明文进行分组,得到明文对应的明文矩阵。
根据一些实施例,当终端获取到待加密的明文时,终端会对明文进行分组,每组明文的长度相同。终端对待加密的明文进行加密时,可以对每组明文进行加密,直至待加密的明文全部加密完成。
易于理解的是,当终端将明文进行分组时,终端可以获取到明文对应的明文矩阵。终端获取到的明文矩阵的数据为至少一个。该明文矩阵的数据基于明文确定。例如,在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。
S203,基于第一轮密钥和预计算表对明文矩阵进行查表运算,输出第一中间数据。
根据一些实施例,当终端获取到明文对应的明文矩阵时,终端可以获取第一轮密钥和预计算表。当终端获取到第一轮密钥和预计算表时,终端可以基于第一轮密钥和预计算表对明文矩阵进行查表运算,输出第一中间数据。此时,终端可以将第一轮密钥和明文矩阵进行异或运算,并基于异或运算后的明文矩阵进行查表运算,输出第一中间数据。终端输出第一中间数据之前还可以进行行位移和列混合运算。终端输出的第一中间数据例如可以是Q1。
易于理解的是,第一轮密钥是终端在第一轮加密待加密的明文时使用的密码。该第一轮密钥指终端与接收终端确定的,该第一轮密钥不会直接使用网络进行传输,当第一轮密钥使用网络进行传输时,终端需要对第一轮密钥进行加密处理,可以减少密钥泄露的风险。
S204,基于第一轮随机种子对第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数。
根据一些实施例,当终端基于第一轮密钥和预计算表对明文矩阵进行查表运算,输出第一中间数据时,终端可以基于第一轮随机种子对第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数。
易于理解的是,终端获取到的第一轮随机种子例如可以是45。终端输出的第一中间数据例如可以是Q1。当终端获取到该第一轮随机种子45时,终端可以第一轮随机种子45对第一中间数据Q1进行混淆处理,输出第一混淆密文W1以及第一输出混淆函数E1。
根据一些实施例,请参见图5,为本申请实施例提供了一种白盒加密方法的流程示意图。如图5所示,本申请实施例的所述方法可以包括以下步骤S301-步骤S303。S301,控制终端芯片的随机数产生器产生第一轮随机种子;S302,采用信号转换算法将终端的物理信号转换为第一轮随机种子;S303,基于第一轮随机种子对第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数。
易于理解的是,终端基于第一轮密钥和预计算表对明文矩阵进行查表运算,输出第一中间数据之后,终端可以获取第一轮随机种子。其中,第一轮随机种子包括但不限于数据、矩阵、向量等等。终端可以控制终端芯片的随机数产生器产生第一轮随机种子。终端还可以采用信号转换算法将终端的物理信号转换为第一轮随机种子。当终端获取到第一轮随机种子时,终端可以基于第一轮随机种子对第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数。
可选的,终端的物理信号包括但不限于终端中的电流信号、电压信号等等。其中,电流信号包括但不限于终端控制芯片的输出电流信号、输入电流信号等等。终端采用信号转换算法将终端的物理信号转换为第一轮随机种子时,终端可以将终端控制芯片的输出电流信号转换为第一轮随机种子。
根据一些实施例,请参见图6,为本申请实施例提供了一种白盒加密方法的流程示意图。如图6所示,本申请实施例的所述方法在基于第一轮随机种子对第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数之前还可以包括以下步骤S401-步骤S402。S401,获取明文对应的密钥;S402,基于密钥的格式信息,确定明文的加密轮数。
根据一些实施例,当终端基于第一轮随机种子对第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数之前,终端可以获取明文对应的密钥。当终端获取到该密钥时,可以获取该密钥的格式信息。该格式信息例如可以是密钥的位数。当终端获取到密钥的格式信息时,终端可以基于该格式信息确定明文的加密轮数。
可选的,终端获取到明文对应的密钥的位数为128位时,终端确定的明文的加密轮数例如可以是10轮。终端获取到明文对应的密钥的位数为192位时,终端确定的明文的加密轮数例如可以是12轮。
S205,获取第一输出混淆函数对应的输入混淆函数。
根据一些实施例,第一输出混淆函数为上一轮白盒加密过程中输出的混淆函数,即第一轮白盒加密过程中输出的混淆函数。第一输出混淆函数对应的输入混淆函数例如可以是第一输入混淆函数。第一输入混淆函数为第二轮白盒加密过程中的输入混淆函数。其中,第一输入混淆函数与第一输出混淆函数互为逆运算。因此终端获取到第一输出混淆函数时,终端可以获取到第一输出混淆函数对应的第一输入混淆函数。例如,终端获取到的第一输出混淆函数例如可以是E1,终端获取到第一输出混淆函数对应的第一输入混淆函数R1。
S206,基于输入混淆函数对第一混淆密文进行还原,得到第一密文。
具体过程如上所述,此处不再赘述。
S207,基于第二轮密钥和预计算表对第一密文进行查表运算,输出第二中间数据。
根据一些实施例,当终端获取基于第一输入混淆函数对第一混淆密文进行还原,得到第一密文时,终端可以获取第二轮密钥。当终端获取到第二轮密钥时,终端可以基于第二轮密钥和预计算表对第一密文进行查表运算,输出第二中间数据。此时,终端可以将第二轮密钥和第一密文进行异或运算,并基于异或运算后的第一密文进行查表运算,输出第二中间数据。终端输出第二中间数据之前还可以进行行位移和列混合运算。终端输出的第二中间数据例如可以是Q2。
S208,基于第二轮随机种子对第二中间数据进行混淆处理,输出第二混淆密文以及第二输出混淆函数。
根据一些实施例,当终端基于第二轮密钥和预计算表对第一密文进行查表运算,输出第二中间数据时,终端可以基于第二轮随机种子对第二中间数据进行混淆处理,输出第二混淆密文以及第二输出混淆函数。
易于理解的是,终端获取到的第一轮随机种子例如可以是45,终端基于第一轮随机种子生成的第二轮随机种子例如可以是55。终端输出的第二中间数据例如可以是Q2。当终端获取到该第二轮随机种子55时,终端可以第二轮随机种子55对第二中间数据Q2进行混淆处理,输出第二混淆密文W2以及第二输出混淆函数E2。
S209,将第二混淆密文以及第二输出混淆函数输入至第三轮。
根据一些实施例,当终端基于第二轮随机种子对第二中间数据进行混淆处理,输出第二混淆密文以及第二输出混淆函数时,终端可以将第二混淆密文以及第二输出混淆函数输入至第三轮。终端可以基于第二混淆密文和第二输混淆函数进行第三轮的白盒加密处理。此时,终端可以将第三轮确定为当前轮,并执行对上一轮混淆加密的明文进行混淆还原,得到第一密文的步骤。
易于理解的是,终端将第二混淆密文以及第二输出混淆函数输入至第三轮之后,终端可以获取第二输出混淆函数对应的第二输入混淆函数。终端基于第二输入混淆函数对第二混淆密文进行还原,可以得到第二密文。终端基于第三轮密钥和预计算表对第二密文进行查表运算,可以输出第三中间数据。终端基于第三轮随机种子对第三中间数据进行混淆处理,可以输出第三混淆密文以及第三输出混淆函数,并将第三混淆密文以及第三输出混淆函数输出至第四轮。
根据一些实施例,请参见图7,为本申请实施例提供了一种白盒加密方法的流程示意图。如图7所示,本申请实施例的所述方法在根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮之前,还可以包括以下步骤S501-步骤S503。S501,基于随机数和第一轮随机种子生成第二轮随机种子;S502,基于随机数和第二轮随机种子生成第三轮随机种子;S503,基于第一轮随机种子和第二轮随机种子生成第三轮随机种子。
易于理解的是,当终端根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮之前,终端可以基于随机数和第一轮随机种子生成第二轮随机种子。其中,生成算法包括但不限于加法、减法、乘法、除法等等。终端获取到的随机数例如可以是10,终端基于控制终端芯片的随机数产生器产生第一轮随机种子例如可以是45。终端基于随机数和第一轮随机种子生成的第二轮随机种子例如可以是55。
可选的,当终端根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮之前,终端基于随机数和第一轮随机种子生成第二轮随机种子时,终端可以基于随机数和第二轮随机种子,生成第三轮随机种子。终端获取到的随机数例如可以是10,终端基于控制终端芯片的随机数产生器产生第一轮随机种子例如可以是45。终端基于随机数和第一轮随机种子生成第二轮随机种子例如可以是55。终端基于随机数和第二轮随机种子生成的第三轮随机种子例如可以是65。
可选的,当终端根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮之前,终端基于随机数和第一轮随机种子生成第二轮随机种子时,终端可以基于第一轮随机种子和第二轮随机种子,生成第三轮随机种子。终端获取到的随机数例如可以是10,终端基于控制终端芯片的随机数产生器产生第一轮随机种子例如可以是45。终端基于随机数和第一轮随机种子生成第二轮随机种子例如可以是55。终端基于第一轮随机种子和第二轮随机种子生成的第三轮随机种子例如可以是100。
S210,当加密轮数确定为最后一轮时,输出明文对应的密文。
根据一些实施例,当终端确定加密轮数为最后一轮时,终端可以输出明文对应的密文。例如终端根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮之后,终端可以检测加密轮数是否为最后一轮。当终端检测到加密轮数为最后一轮时,终端不会将执行对上一轮混淆加密的明文进行混淆还原,得到第一密文的步骤,终端可以输出明文对应的密文。终端输出明文对应的密文时,终端可以对上一轮的混淆加密的明文进行混淆还原,并对混淆还原后的上一轮密文进行加密处理,输出明文对应的密文。
具体过程如上所述,此处不再赘述。
根据一些实施例,请参见图8,为本申请实施例提供了一种白盒加密方法的流程示意图。如图8所示,本申请实施例的所述方法还可以包括以下步骤S601-步骤S602。S601,当检测到当前轮数为最后一轮时,对上一轮混淆加密的明文进行混淆还原,得到上一轮中间数据;S602,基于最后一轮密钥和预计算表对上一轮中间数据进行查表运算,输出明文对应的密文。
根据一些实施例,当终端对待加密的明文进行白盒加密时,可以在每轮加密完成之后计数一次。当计数轮数比加密轮数小1轮时,终端可以检测到当前轮数为最后一轮,终端可以对上一轮混淆加密的明文进行混淆还原,得到上一轮中间数据。当终端获取到上一轮的中间数据时,终端可以基于最后一轮密钥和预计算表对上一轮中间数据进行查表运算,输出明文对应的密文。
易于理解的是,终端确定的加密轮数例如可以是10轮。当终端对待加密的明文进行白盒加密处理时,终端可以在每轮加密完成之后计数一次。当终端确定已加密轮数为9轮时,终端可以确定当前轮数为最后一轮,即第10轮。终端可以对第9轮混淆加密的明文进行混淆还原,得到第9轮中间数据。当终端获取到第9轮的中间数据时,终端可以基于第10轮密钥和预计算表对第9轮中间数据进行查表运算,输出明文对应的密文。
本申请实施例提供一种白盒加密方法,获取到待加密的明文时,可以将明文进行分组,得到明文对应的明文矩阵,可以提高白盒加密的执行效率。其次,终端可以基于第一轮密钥和预计算表对明文矩阵进行查表运算,输出第一中间数据,并基于第一轮随机种子对第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数,可以减少中间数据泄露的风险,提高白盒加密的安全性。另外,终端在获取到第一输出混淆函数对应的输入混淆函数时,可以基于输入混淆函数对第一混淆密文进行还原,得到第一密文,基于第二轮密钥和预计算表对第一密文进行查表运算,输出第二中间数据,基于第二轮随机种子对第二中间数据进行混淆处理,输出第二混淆密文以及第二输出混淆函数,将第二混淆密文以及第二输出混淆函数输入至第三轮,当加密轮数确定为最后一轮时,输出明文对应的密文,完成白盒加密过程,由于白盒加密过程中会对中间数据进行混淆处理,并且没有进行仿射变换处理,可以在提高白盒加密的安全性的同时提高白盒加密的执行效率。
下面将结合附图9,对本申请实施例提供的白盒加密装置进行详细介绍。需要说明的是,附图9所示的白盒加密装置,用于执行本申请图2-图8所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请图2-图8所示的实施例。
请参见图9,其示出本申请实施例的白盒加密装置的结构示意图。该白盒加密装置900可以通过软件、硬件或者两者的结合实现成为用户终端的全部或一部分。根据一些实施例,该白盒加密装置900包括明文获取单元901、明文还原单元902、密文加密单元903、当前轮确定单元904和密文输出单元905,具体用于:
明文获取单元901,用于获取待加密的明文;
明文还原单元902,用于对上一轮混淆加密的所述明文进行混淆还原,得到第一密文;
密文加密单元903,用于根据当前轮随机种子对所述第一密文进行混淆加密,并输入至下一轮;
当前轮确定单元904,用于将所述下一轮确定为当前轮,并执行所述对上一轮混淆加密的所述明文进行混淆还原,得到第一密文的步骤;
密文输出单元905,用于当确定为最后一轮时,输出所述明文对应的密文。
根据一些实施例,该白盒加密装置900还包括数据处理单元906,用于对上一轮混淆加密的明文进行混淆还原,得到第一密文之前,将明文进行分组,得到明文对应的明文矩阵;
基于第一轮密钥和预计算表对明文矩阵进行查表运算,输出第一中间数据;
基于第一轮随机种子对第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数。
根据一些实施例,明文还原单元902,用于对上一轮混淆加密的明文进行混淆还原,得到第一密文时,具体用于:
获取第一输出混淆函数对应的输入混淆函数;
基于输入混淆函数对第一混淆密文进行还原,得到第一密文。
根据一些实施例,密文加密单元903,用于根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮时,具体用于:
基于第二轮密钥和预计算表对第一密文进行查表运算,输出第二中间数据;
基于第二轮随机种子对第二中间数据进行混淆处理,输出第二混淆密文以及第二输出混淆函数;
将第二混淆密文以及第二输出混淆函数输入至第三轮。
根据一些实施例,密文输出单元905,用于当确定为最后一轮时,输出与明文对应的密文,包括:
当检测到当前轮数为最后一轮时,对上一轮混淆加密的明文进行混淆还原,得到上一轮中间数据;
基于最后一轮密钥和预计算表对上一轮中间数据进行查表运算,输出明文对应的密文。
根据一些实施例,该白盒加密装置900还包括随机种子产生单元906,用于基于第一轮随机种子对第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数之前,控制终端芯片的随机数产生器产生第一轮随机种子;或
采用信号转换算法将终端的物理信号转换为第一轮随机种子。
根据一些实施例,随机种子产生单元906,还用于根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮之前,基于随机数和第一轮随机种子生成第二轮随机种子,
基于随机数和第二轮随机种子生成第三轮随机种子;或
基于第一轮随机种子和第二轮随机种子生成第三轮随机种子。
根据一些实施例,该白盒加密装置900还包括轮数确定单元907,用于对上一轮混淆加密的明文进行混淆还原,得到第一密文之前,获取明文对应的密钥;
基于密钥的格式信息,确定明文的加密轮数;
密文输出单元905,用于当确定为最后一轮时,输出明文对应的密文时,具体用于:
当加密轮数确定为最后一轮时,输出明文对应的密文。
本申请实施例提供一种白盒加密装置,通过明文获取单元获取待加密的明文,明文还原单元对上一轮混淆加密的所述明文进行混淆还原,得到第一密文,密文加密单元根据当前轮随机种子对所述第一密文进行混淆加密,并输入至下一轮,当前轮确定单元将所述下一轮确定为当前轮,并执行所述对上一轮混淆加密的所述明文进行混淆还原,得到第一密文的步骤,密文输出单元905可以确定为最后一轮时,输出所述明文对应的密文。因此,白盒加密装置对待加密的明文进行加密时,可以在当前轮随机种子对密文进行混淆加密时进行混淆运算,随机种子的随机性可以减少明文矩阵的泄露和破解风险,可以提高白盒加密的安全性。
请参见图10,为本申请实施例提供的一种终端的结构示意图。如图10所示,所述终端1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)和GPS,可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个终端1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行终端1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及用于白盒加密的应用程序。
在图10所示的终端1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的白盒加密的应用程序,并具体执行以下操作:
获取待加密的明文;
对上一轮混淆加密的明文进行混淆还原,得到第一密文;
根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮;
将下一轮确定为当前轮,并执行对上一轮混淆加密的明文进行混淆还原,得到第一密文的步骤;
当确定为最后一轮时,输出明文对应的密文。
根据一些实施例,处理器1001用于执行对上一轮混淆加密的明文进行混淆还原,得到第一密文之前,还具体执行以下操作:
将明文进行分组,得到明文对应的明文矩阵;
基于第一轮密钥和预计算表对明文矩阵进行查表运算,输出第一中间数据;
基于第一轮随机种子对第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数。
根据一些实施例,处理器1001用于执行对上一轮混淆加密的明文进行混淆还原,得到第一密文时,具体执行以下操作:
获取第一输出混淆函数对应的输入混淆函数;
基于输入混淆函数对第一混淆密文进行还原,得到第一密文。
根据一些实施例,处理器1001用于执行根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮时,具体执行以下操作:
基于第二轮密钥和预计算表对第一密文进行查表运算,输出第二中间数据;
基于第二轮随机种子对第二中间数据进行混淆处理,输出第二混淆密文以及第二输出混淆函数;
将第二混淆密文以及第二输出混淆函数输入至第三轮。
根据一些实施例,处理器1001用于执行当确定为最后一轮时,输出与明文对应的密文时,具体执行以下操作:
当检测到当前轮数为最后一轮时,对上一轮混淆加密的明文进行混淆还原,得到上一轮中间数据;
基于最后一轮密钥和预计算表对上一轮中间数据进行查表运算,输出明文对应的密文。
根据一些实施例,处理器1001用于执行基于第一轮随机种子对第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数之前,还具体执行以下操作:
控制终端芯片的随机数产生器产生第一轮随机种子;或
采用信号转换算法将终端的物理信号转换为第一轮随机种子。
根据一些实施例,处理器1001用于执行根据当前轮随机种子对第一密文进行混淆加密,并输入至下一轮之前,还具体执行以下操作:
基于随机数和第一轮随机种子生成第二轮随机种子,
基于随机数和第二轮随机种子生成第三轮随机种子;或
基于第一轮随机种子和第二轮随机种子生成第三轮随机种子。
根据一些实施例,处理器1001用于执行对上一轮混淆加密的明文进行混淆还原,得到第一密文之前,还具体执行以下操作:
获取明文对应的密钥;
基于密钥的格式信息,确定明文的加密轮数;
当确定为最后一轮时,输出明文对应的密文,包括:
当加密轮数确定为最后一轮时,输出明文对应的密文。
本申请实施例提供一种终端,通过获取待加密的明文,可以根据当前轮随机种子对上一轮的密文进行混淆加密,并输入至下一轮,将下一轮确定为当前轮,并执行对上一轮混淆加密的明文进行混淆还原,得到第一密文的步骤,直至确定为最后一轮时,输出明文对应的密文。因此,终端对待加密的明文进行加密时,可以在当前轮随机种子对密文进行混淆加密时进行混淆运算,随机种子的随机性可以减少明文矩阵的泄露和破解风险,可以提高白盒加密的安全性。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种白盒加密方法的部分或全部步骤。
本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammaBLE GateArray,FPGA)、集成电路(Integrated Circuit,IC)等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (11)
1.一种白盒加密方法,其特征在于,所述方法包括:
获取待加密的明文;
对上一轮混淆加密的所述明文进行混淆还原,得到第一密文;
根据当前轮随机种子对所述第一密文进行混淆加密,并输入至下一轮;
将所述下一轮确定为当前轮,并执行所述对上一轮混淆加密的所述明文进行混淆还原,得到第一密文的步骤;
当确定为最后一轮时,输出所述明文对应的密文。
2.根据权利要求1所述的方法,其特征在于,所述对上一轮混淆加密的所述明文进行混淆还原,得到第一密文之前,还包括:
将所述明文进行分组,得到所述明文对应的明文矩阵;
基于第一轮密钥和预计算表对所述明文矩阵进行查表运算,输出第一中间数据;
基于第一轮随机种子对所述第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数。
3.根据权利要求2所述的方法,其特征在于,所述对上一轮混淆加密的所述明文进行混淆还原,得到第一密文,包括:
获取所述第一输出混淆函数对应的输入混淆函数;
基于所述输入混淆函数对所述第一混淆密文进行还原,得到第一密文。
4.根据权利要求3所述的方法,其特征在于,所述根据当前轮随机种子对所述第一密文进行混淆加密,并输入至下一轮,包括:
基于第二轮密钥和所述预计算表对所述第一密文进行查表运算,输出第二中间数据;
基于第二轮随机种子对所述第二中间数据进行混淆处理,输出第二混淆密文以及第二输出混淆函数;
将所述第二混淆密文以及第二输出混淆函数输入至第三轮。
5.根据权利要求4所述的方法,其特征在于,所述当确定为最后一轮时,输出与所述明文对应的密文,包括:
当检测到当前轮数为最后一轮时,对上一轮混淆加密的所述明文进行混淆还原,得到上一轮中间数据;
基于最后一轮密钥和所述预计算表对所述上一轮中间数据进行查表运算,输出所述明文对应的所述密文。
6.根据权利要求2所述的方法,其特征在于,所述基于第一轮随机种子对所述第一中间数据进行混淆处理,输出第一混淆密文以及第一输出混淆函数之前,还包括:
控制终端芯片的随机数产生器产生第一轮随机种子;或
采用信号转换算法将终端的物理信号转换为所述第一轮随机种子。
7.根据权利要求6所述的方法,其特征在于,所述根据当前轮随机种子对所述第一密文进行混淆加密,并输入至下一轮之前,还包括:
基于随机数和所述第一轮随机种子生成所述第二轮随机种子,
基于所述随机数和所述第二轮随机种子生成所述第三轮随机种子;或
基于所述第一轮随机种子和所述第二轮随机种子生成所述第三轮随机种子。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述对上一轮混淆加密的所述明文进行混淆还原,得到第一密文之前,还包括:
获取所述明文对应的密钥;
基于所述密钥的格式信息,确定所述明文的加密轮数;
所述当确定为最后一轮时,输出所述明文对应的密文,包括:
当所述加密轮数确定为最后一轮时,输出所述明文对应的密文。
9.一种白盒加密装置,其特征在于,所述装置包括:
明文获取单元,用于获取待加密的明文;
明文还原单元,用于对上一轮混淆加密的所述明文进行混淆还原,得到第一密文;
密文加密单元,用于根据当前轮随机种子对所述第一密文进行混淆加密,并输入至下一轮;
当前轮确定单元,用于将所述下一轮确定为当前轮,并执行所述对上一轮混淆加密的所述明文进行混淆还原,得到第一密文的步骤;
密文输出单元,用于当确定为最后一轮时,输出所述明文对应的密文。
10.一种终端,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现上述权利要求1-8中任一项方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述权利要求1-8中任一项方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010807307.8A CN112054896B (zh) | 2020-08-12 | 2020-08-12 | 白盒加密方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010807307.8A CN112054896B (zh) | 2020-08-12 | 2020-08-12 | 白盒加密方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112054896A true CN112054896A (zh) | 2020-12-08 |
CN112054896B CN112054896B (zh) | 2023-10-03 |
Family
ID=73602771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010807307.8A Active CN112054896B (zh) | 2020-08-12 | 2020-08-12 | 白盒加密方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112054896B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112528282A (zh) * | 2020-12-14 | 2021-03-19 | 山东小葱数字科技有限公司 | 反混淆代码的方法、装置和电子设备 |
CN113541942A (zh) * | 2021-07-12 | 2021-10-22 | 西安电子科技大学 | 基于arx白盒分组密码的数字内容加解密方法 |
CN117155539A (zh) * | 2023-10-31 | 2023-12-01 | 浙江大学 | 模拟射频电路网表的混淆及其复原方法、装置、终端及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106452729A (zh) * | 2016-08-30 | 2017-02-22 | 上海交通大学 | 一种基于随机置换的白盒密码的加密方法 |
US20170126396A1 (en) * | 2015-10-29 | 2017-05-04 | Samsung Sds Co., Ltd. | Apparatus and method for encryption |
CN106663387A (zh) * | 2014-09-18 | 2017-05-10 | 华为国际有限公司 | 加密函数和解密函数生成方法、加密和解密方法以及相关装置 |
CN106850221A (zh) * | 2017-04-10 | 2017-06-13 | 四川阵风科技有限公司 | 信息加密、解密方法及装置 |
CN107070636A (zh) * | 2016-12-23 | 2017-08-18 | 中国电子科技集团公司第三十研究所 | 一种标准密文输出格式的商密sm4算法的白盒软件实现方法 |
CN108009440A (zh) * | 2017-11-23 | 2018-05-08 | 重庆金融资产交易所有限责任公司 | 数据存储方法、查询方法、装置、存储介质和计算机设备 |
CN108494546A (zh) * | 2018-02-13 | 2018-09-04 | 北京梆梆安全科技有限公司 | 一种白盒加密方法、装置及存储介质 |
CN109981256A (zh) * | 2019-04-03 | 2019-07-05 | 华南师范大学 | 基于FeisitelBox结构的白盒分组密码构造方法及系统 |
CN110650119A (zh) * | 2019-08-20 | 2020-01-03 | 阿里巴巴集团控股有限公司 | 数据传输方法、装置和电子设备 |
CN111314050A (zh) * | 2018-12-11 | 2020-06-19 | 北京思源理想控股集团有限公司 | 一种加解密方法及装置 |
-
2020
- 2020-08-12 CN CN202010807307.8A patent/CN112054896B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106663387A (zh) * | 2014-09-18 | 2017-05-10 | 华为国际有限公司 | 加密函数和解密函数生成方法、加密和解密方法以及相关装置 |
US20170126396A1 (en) * | 2015-10-29 | 2017-05-04 | Samsung Sds Co., Ltd. | Apparatus and method for encryption |
CN106452729A (zh) * | 2016-08-30 | 2017-02-22 | 上海交通大学 | 一种基于随机置换的白盒密码的加密方法 |
CN107070636A (zh) * | 2016-12-23 | 2017-08-18 | 中国电子科技集团公司第三十研究所 | 一种标准密文输出格式的商密sm4算法的白盒软件实现方法 |
CN106850221A (zh) * | 2017-04-10 | 2017-06-13 | 四川阵风科技有限公司 | 信息加密、解密方法及装置 |
CN108009440A (zh) * | 2017-11-23 | 2018-05-08 | 重庆金融资产交易所有限责任公司 | 数据存储方法、查询方法、装置、存储介质和计算机设备 |
CN108494546A (zh) * | 2018-02-13 | 2018-09-04 | 北京梆梆安全科技有限公司 | 一种白盒加密方法、装置及存储介质 |
CN111314050A (zh) * | 2018-12-11 | 2020-06-19 | 北京思源理想控股集团有限公司 | 一种加解密方法及装置 |
CN109981256A (zh) * | 2019-04-03 | 2019-07-05 | 华南师范大学 | 基于FeisitelBox结构的白盒分组密码构造方法及系统 |
CN110650119A (zh) * | 2019-08-20 | 2020-01-03 | 阿里巴巴集团控股有限公司 | 数据传输方法、装置和电子设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112528282A (zh) * | 2020-12-14 | 2021-03-19 | 山东小葱数字科技有限公司 | 反混淆代码的方法、装置和电子设备 |
CN112528282B (zh) * | 2020-12-14 | 2022-10-18 | 山东小葱数字科技有限公司 | 反混淆代码的方法、装置和电子设备 |
CN113541942A (zh) * | 2021-07-12 | 2021-10-22 | 西安电子科技大学 | 基于arx白盒分组密码的数字内容加解密方法 |
CN113541942B (zh) * | 2021-07-12 | 2022-06-07 | 西安电子科技大学 | 基于arx白盒分组密码的数字内容加解密方法 |
CN117155539A (zh) * | 2023-10-31 | 2023-12-01 | 浙江大学 | 模拟射频电路网表的混淆及其复原方法、装置、终端及介质 |
CN117155539B (zh) * | 2023-10-31 | 2024-01-30 | 浙江大学 | 模拟射频电路网表的混淆及其复原方法、装置、终端及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112054896B (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112054896B (zh) | 白盒加密方法、装置、终端及存储介质 | |
CN108769027B (zh) | 安全通信方法、装置、移动终端和存储介质 | |
CN110235409A (zh) | 使用同态加密被保护的rsa签名或解密的方法 | |
JP2017504838A (ja) | 暗号アルゴリズムに対するサイドチャネル攻撃への対抗策 | |
US11063743B2 (en) | Method of RSA signature of decryption protected using assymetric multiplicative splitting | |
US20150215117A1 (en) | White box encryption apparatus and method | |
CN111404952B (zh) | 变电站数据加密传输方法、装置、计算机设备和存储介质 | |
US8976960B2 (en) | Methods and apparatus for correlation protected processing of cryptographic operations | |
US11436946B2 (en) | Encryption device, encryption method, decryption device, and decryption method | |
EP4075716A1 (en) | Method and apparatus for encrypting and decrypting and reading and writing messages, computer device, and storage medium | |
US20190065759A1 (en) | Method for protecting data | |
CN112003696A (zh) | Sm9密钥生成方法、系统、电子设备、装置及存储介质 | |
CN114124364A (zh) | 密钥安全处理方法、装置、设备及计算机可读存储介质 | |
Xu et al. | A white-box AES-like implementation based on key-dependent substitution-linear transformations | |
EP3054620A1 (en) | System and method for performing block cipher cryptography by implementing a mixer function that includes a substitution-box and a linear transformation using a lookup-table | |
WO2016204846A2 (en) | System and method for an enhanced xor cipher through extensions | |
CN116248316A (zh) | 文件加密方法、文件解密方法、装置及存储介质 | |
KR20230095750A (ko) | 일방향 함수를 이용한 암호 운영모드 기반의 화이트박스 암호화 방법 및 장치 | |
KR102319699B1 (ko) | 안티-인버전 함수를 이용한 화이트박스 암호 인코딩 장치 및 방법 | |
EP3703305A1 (en) | Method secured against side-channel attacks with a new masking scheme protecting linear operations of a cryptographic algorithm | |
CN110601841B (zh) | Sm2协同签名及解密方法、装置 | |
KR20190041900A (ko) | 암호화 장치 및 복호화 장치, 이들의 동작방법 | |
CN116015620B (zh) | 一种卫星影像数据加密和解密方法和系统 | |
CN113872753B (zh) | 基于sha256序列形式的数据的加密传输方法和装置 | |
CN111324897B (zh) | 一种图像加密方法、装置及图像解密方法、装置 |
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 | ||
GR01 | Patent grant |