Systems and methods for implementing block cipher algorithms on attacker-controlled systems
    1.
    发明授权
    Systems and methods for implementing block cipher algorithms on attacker-controlled systems 有权
    用于在攻击者控制的系统上实现块密码算法的系统和方法

    公开(公告)号:US09031228B2

    公开(公告)日:2015-05-12

    申请号:US13448385

    申请日:2012-04-16

    IPC分类号: H04L9/28 H04L9/00 H04L9/06

    摘要: Systems and methods for an implementation of block cipher algorithms (e.g., AES) use lookup tables to obscure key information, increasing difficulty of reverse engineering efforts. The implementation encodes round key information into a first plurality of tables (T1), which when used for lookup operations also complete SubBytes operations, and output state in an encoded format. A Shiftrows operation is performed arithmetically on the output state. A second plurality of tables (T2) are used to perform a polynomial multiplication portion of MixColumns operation, and an XOR portion of MixColumns is performed arithmetically on the columns. Encoding from the T1 tables is made to match a decoding built into the T2 tables. Subsets of the T1 tables use the same T2 tables, reducing a memory footprint for the T2 tables. Multiple AES keys can be embedded in different sets of T1 tables that encode for the same set of T2 tables.

    摘要翻译: 用于实施块密码算法(例如,AES)的系统和方法使用查找表来掩盖关键信息,增加了逆向工程努力的难度。 该实施方式将循环密钥信息编码到第一多个表(T1)中,当用于查找操作时也完成子字节操作,并且以编码格式输出状态。 对输出状态进行算术运算。 使用第二多个表(T2)来执行MixColumns操作的多项式乘法部分,并且对列进行算术运算的MixColumn的XOR部分。 使T1表格的编码与T2表中内置的解码相匹配。 T1表的子集使用相同的T2表,减少了T2表的内存占用。 可以将多个AES密钥嵌入到为同一组T2表编码的不同的T1表中。

    Performing boolean logic operations using arithmetic operations by code obfuscation
    3.
    发明授权
    Performing boolean logic operations using arithmetic operations by code obfuscation 有权
    使用代码混淆的算术运算执行布尔逻辑运算

    公开(公告)号:US08707053B2

    公开(公告)日:2014-04-22

    申请号:US13024258

    申请日:2011-02-09

    IPC分类号: G06F12/14

    CPC分类号: G06F21/14

    摘要: Method and apparatus for obfuscating computer software code, to protect against reverse-engineering of the code. The obfuscation here is of the part of the code that performs a Boolean logic operation such as an exclusive OR on two (or more) data variables. In the obfuscated code, each of the two variables is first modified by applying to it a function which deconstructs the value of each of the variables, and then the exclusive OR operation is replaced by an arithmetic operation such as addition, subtraction, or multiplication, which is performed on the two deconstructed variables. The non-obfuscated result is recovered by applying a third function to the value generated by the arithmetic operation. This obfuscation is typically carried out by suitably annotating (modifying) the original source code.

    摘要翻译: 用于模糊计算机软件代码的方法和装置,以防止代码的逆向工程化。 这里的混淆是执行布尔逻辑运算的代码的一部分,例如两个(或多个)数据变量上的异或运算。 在混淆代码中,首先通过对两个变量中的每一个进行修改来解构每个变量的值,然后通过诸如加法,减法或乘法的算术运算来代替异或运算, 这是对两个解构变量进行的。 通过对由算术运算产生的值应用第三函数来恢复未混淆的结果。 这种混淆通常通过适当地注释(修改)原始源代码来执行。

    Data transformation system using cyclic groups
    5.
    发明授权
    Data transformation system using cyclic groups 有权
    数据转换系统采用循环群

    公开(公告)号:US08553878B2

    公开(公告)日:2013-10-08

    申请号:US12760474

    申请日:2010-04-14

    IPC分类号: H04K1/00 H04L9/00 H04L9/24

    摘要: An asymmetric (dual key) data obfuscation process, based on the well known ElGamal cryptosystem algorithm, and which uses multiplicative cyclic groups to transform (obfuscate) digital data for security purposes. In the present system the data need not be a member of the cyclic group, unlike in the ElGamal cryptosystem algorithm. Also, any one of several additional mathematical data transformations are further applied to the transformed data, thereby enhancing security of the transformed data.

    摘要翻译: 基于众所周知的ElGamal密码系统算法的非对称(双密钥)数据混淆处理,为了安全起见,使用乘法循环组来转换(混淆)数字数据。 在本系统中,与ElGamal密码系统算法不同,数据不需要是循环组的成员。 而且,数字附加数学变换中的任何一个进一步应用于变换后的数据,从而提高变换数据的安全性。

    Protecting states of a cryptographic process using group automorphisms
    8.
    发明授权
    Protecting states of a cryptographic process using group automorphisms 有权
    使用组自动化保护加密过程的状态

    公开(公告)号:US08504845B2

    公开(公告)日:2013-08-06

    申请号:US13076362

    申请日:2011-03-30

    IPC分类号: H04L9/28

    CPC分类号: G06F21/602 G06F21/52

    摘要: In the field of computer enabled cryptography, such as a keyed block cipher having a plurality of rounds, the cipher is hardened against an attack by a protection process which obscures the cipher states and/or the round keys using the properties of group field automorphisms and applying multiplicative masks (instead of conventional XOR masks) to the states of the cipher, for encryption or decryption. This is especially advantageous in a “White Box” environment where an attacker has full access to the cipher algorithm, including the algorithm's internal state during its execution. This method and the associated computing apparatus are useful for protection against known attacks on “White Box” ciphers, by eliminating XOR operations with improved masking techniques and increasing complexity of reverse engineering and of attacks.

    摘要翻译: 在诸如具有多个回合的密钥分组密码的计算机启用密码学领域中,使用组域自动生成的属性,使密码状态和/或循环密钥隐藏的保护过程针对攻击进行加密, 将乘法掩码(而不是常规XOR掩码)应用于密码的状态,以进行加密或解密。 这在“白盒”环境中特别有利,攻击者可以完全访问密码算法,包括算法的执行过程中的内部状态。 该方法和相关联的计算装置对于通过利用改进的掩蔽技术消除XOR操作并增加逆向工程和攻击的复杂性来防止已知的对“白盒”密码的攻击是有用的。

    SECURING IMPLEMENTATION OF CRYPTOGRAPHIC ALGORITHMS USING ADDITIONAL ROUNDS
    9.
    发明申请
    SECURING IMPLEMENTATION OF CRYPTOGRAPHIC ALGORITHMS USING ADDITIONAL ROUNDS 审中-公开
    使用附加环保护实体算法的实现

    公开(公告)号:US20130067212A1

    公开(公告)日:2013-03-14

    申请号:US13232853

    申请日:2011-09-14

    IPC分类号: H04L9/00

    CPC分类号: H04L9/0631 H04L2209/12

    摘要: In the field of computer enabled cryptography, such as a keyed block cipher having a plurality of sequenced rounds, the cipher is hardened against an attack by a protection process which adds rounds to the cipher process. This is especially advantageous in a “White Box” environment where an attacker has full access to the cipher algorithm (process), including the algorithm's internal state during its execution. In one version, a specific number of rounds are added over those of a standard version of the cipher to both encryption and the complementary decryption. The added rounds are inserted immediately after the last of the standard rounds in the sequence. In another version, the added rounds are one or more opposing paired rounds of encryption/decryption or decryption/encryption which effectively cancel each other out, and may be inserted anywhere in the sequence of standard rounds.

    摘要翻译: 在计算机启用密码学领域,例如具有多个排序轮次的密钥分组密码,密码被针对加密进程加密的保护过程的攻击强化。 这在白盒环境中特别有利,在这种情况下,攻击者可以完全访问密码算法(进程),包括算法执行过程中的内部状态。 在一个版本中,将特定数量的回合相对于密码的标准版本的加法加密和互补解密相加。 添加的回合将在序列中的最后一个标准回合之后立即插入。 在另一个版本中,添加的回合是一个或多个相对配对的加密/解密或解密/加密,其有效地彼此抵消,并且可以插入到标准轮次的任何地方。

    System and method for data obfuscation based on discrete logarithm properties
    10.
    发明授权
    System and method for data obfuscation based on discrete logarithm properties 有权
    基于离散对数特性的数据混淆系统和方法

    公开(公告)号:US08386803B2

    公开(公告)日:2013-02-26

    申请号:US12621153

    申请日:2009-11-18

    摘要: Disclosed herein are systems, computer-implemented methods, and computer-readable storage media for obfuscating data based on a discrete logarithm. A system practicing the method identifies a clear value in source code, replaces the clear value in the source code with a transformed value based on the clear value and a discrete logarithm, and updates portions of the source code that refer to the clear value such that interactions with the transformed value provide a same result as interactions with the clear value. This discrete logarithm approach can be implemented in three variations. The first variation obfuscates some or all of the clear values in loops. The second variation obfuscates data in a process. The third variation obfuscates data pointers, including tables and arrays. The third variation also preserves the ability to use pointer arithmetic.

    摘要翻译: 本文公开的是基于离散对数来混淆数据的系统,计算机实现的方法和计算机可读存储介质。 实施该方法的系统识别源代码中的明确值,基于清除值和离散对数,用源代码替换变换值,并更新引用清除值的源代码部分,使得 与变换值的交互提供与清除值的交互相同的结果。 这种离散对数方法可以在三个变体中实现。 第一个变体模糊了循环中的一些或全部清除值。 第二个变体在一个过程中模糊数据。 第三个变体模糊数据指针,包括表和数组。 第三个变体也保留了使用指针算术的能力。