Patents by Inventor Benoit Chevallier-Mames

Benoit Chevallier-Mames has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8966279
    Abstract: 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 protecting the cipher key by means of a key expansion process which obscures the cipher and/or the round keys by increasing their lengths to provide an expanded version of the keys for carrying out encryption or decryption using the cipher. 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 where the key is derived through a process and so is unknown when the software code embodying the cipher is compiled. This is typically the case where there are many users of the cipher and each has his own key, or where each user session has its own key.
    Type: Grant
    Filed: December 21, 2010
    Date of Patent: February 24, 2015
    Assignee: Apple Inc.
    Inventors: Augustin J. Farrugia, Benoit Chevallier-Mames, Mathieu Ciet, Thomas Icart, Bruno Kindarji
  • Patent number: 8966285
    Abstract: In the field of computer enabled cryptography, such as a keyed block cipher having a plurality of rounds, the cipher is hardened against attack by protecting the round keys by (1) combining several cipher operations using a pair of sub-keys (round keys) into one table look-up, or (2) a key masking process which obscures the round keys by providing a masked version of the key operations for carrying out encryption or decryption using the cipher. This approach is especially advantageous in an insecure “White Box” environment where an attacker has full access to execution of the cipher algorithm, including the algorithm's internal state during its execution.
    Type: Grant
    Filed: January 10, 2011
    Date of Patent: February 24, 2015
    Assignee: Apple Inc.
    Inventors: Augustin J. Farrugia, Mathieu Ciet, Benoit Chevallier-Mames
  • Patent number: 8918768
    Abstract: A method and an apparatus for receiving a first source code having a code block to update the first source code with multiple copies of the code block to protect against correlation attacks are described. The code block can perform one or more operations for execution based on the first source code. The operations can be performed via a random one of the copies of the code block. A second source code based on the updated first source code can be generated to be executed by a processor to produce an identical result as the first source code.
    Type: Grant
    Filed: December 6, 2012
    Date of Patent: December 23, 2014
    Assignee: Apple Inc.
    Inventors: Benoit Chevallier-Mames, Mathieu Ciet, Thomas Icart, Bruno Kindarji, Augustin J. Farrugia
  • Publication number: 20140348323
    Abstract: Various embodiments of a computer-implemented method of information security using block cipher column rotations are described. The cipher state column rotations provide resistance to white box side channel memory correlation attacks designed to reverse-engineer a symmetric cipher key associated with the information security system. The column rotation operations can be performed on the cipher state of a block cipher, and then removed from the result, to provide obfuscation of the data when in memory, while not impacting the resulting output of the cipher or decipher operation. The method additionally includes performing a first rotation of an iteration specific cipher subkey according to the first rotation index, performing an iteration of the block cipher operations on the cipher state matrix, and rotating the columns of the cipher state matrix according to an inverse of the first rotation index.
    Type: Application
    Filed: May 24, 2013
    Publication date: November 27, 2014
    Inventors: Benoit Chevallier-Mames, Mathieu Ciet, Thomas Icart, Bruno Kindarji, Augustin J. Farrugia
  • Patent number: 8886940
    Abstract: In the computer data security field, a cryptographic hash function process embodied in a computer system and which is typically keyless, but is highly secure. The process is based on the type of chaos introduction exhibited by a game process such as the well known shuffling of a deck of playing cards. Computation of the hash value (digest) is the result of executing in a model (such as computer code or logic circuitry) a game algorithm that models the actual game such as a playing card shuffling algorithm using the message as an input to the algorithm, then executing the card shuffling algorithm on the input. A state (order) of the modeled deck of cards after a shuffle (or multiple shuffles) gives the hash digest value.
    Type: Grant
    Filed: May 29, 2009
    Date of Patent: November 11, 2014
    Assignee: Apple Inc.
    Inventors: Benoit Chevallier-Mames, Mathieu Ciet, Augustin J. Farrugia
  • Patent number: 8862896
    Abstract: In the data security field, a data protection process embodied in a computer system or computing device or equivalent and which securely descrambles protected (scrambled) data. The process descrambles the data using a dynamic process employing a set of multi-level trees of deterministic functions to generate a descrambling mask value and recover the descrambled message.
    Type: Grant
    Filed: December 6, 2010
    Date of Patent: October 14, 2014
    Assignee: Apple Inc.
    Inventors: Gelareh Taban, Filip Paun, Benoit Chevallier-Mames, Augustin J. Farrugia, Mathieu Ciet
  • Publication number: 20140301546
    Abstract: Methods, media, and systems for, in one embodiment, protecting one or more keys in an encryption and/or decryption process can use precomputed values in the process such that at least a portion of the one or more keys is not used or exposed in the process. In one example of a method, internal states of an AES encryption process are saved for use in a counter mode stream cipher operation in which the key used in the AES encryption process is not exposed or used.
    Type: Application
    Filed: August 30, 2013
    Publication date: October 9, 2014
    Applicant: Apple Inc.
    Inventors: Benoit Chevallier-Mames, Mathieu Ciet, Thomas Icart, Bruno Kindarji, Augustin J. Farrugia
  • Publication number: 20140189366
    Abstract: In a first computer (digital) data obfuscation process, data which is conventionally arranged in a data structure called an array (e.g., a table) and conventionally stored in computer or computer device memory is obfuscated (masked) by logically or mathematically combining the data, entry-by-entry, with a masking value which is computed as a logical or mathematical function of the entry itself or its index in the array, modulo a security value. The complementary unmasking value is a pointer to the entry's address in the table modulo the security value. In a second computer (digital) data obfuscation process, the addresses (location designations) in memory of a data array are themselves obfuscated (masked) by partitioning the array into blocks of entries and shuffling the order of the data entries in each block by a predetermined algorithm, resulting in a shuffled array also differing from the original array in terms of its size (the total number of entries).
    Type: Application
    Filed: December 23, 2013
    Publication date: July 3, 2014
    Applicant: Apple Inc.
    Inventors: Augustin J. Farrugia, Mathieu Ciet, Benoit Chevallier-Mames
  • Publication number: 20140165208
    Abstract: A method and an apparatus that provide rewriting code to dynamically mask program data statically embedded in a first code are described. The program data can be used in multiple instructions in the first code. A code location (e.g. an optimal code location) in the first code can be determined for injecting the rewriting code. The code location may be included in two or more execution paths of first code. Each execution path can have at least one of the instructions using the program data. A second code may be generated based on the first code inserted with the rewriting code at the optimal code location. The second code can include instructions using the program data dynamically masked by the rewriting code. When executed by a processor, the first code and the second code can generate identical results.
    Type: Application
    Filed: December 6, 2012
    Publication date: June 12, 2014
    Applicant: APPLE INC.
    Inventors: Benoit Chevallier-Mames, Daniel F. Reynaud, Jonathan G. McLachlan, Julien Lerouge, Mathieu Ciet, Thomas Icart
  • Publication number: 20140165030
    Abstract: A method and an apparatus for receiving a first source code having a code block to update the first source code with multiple copies of the code block to protect against correlation attacks are described. The code block can perform one or more operations for execution based on the first source code. The operations can be performed via a random one of the copies of the code block. A second source code based on the updated first source code can be generated to be executed by a processor to produce an identical result as the first source code.
    Type: Application
    Filed: December 6, 2012
    Publication date: June 12, 2014
    Applicant: APPLE INC.
    Inventors: Benoit Chevallier-Mames, Mathieu Ciet, Thomas Icart, Bruno Kindarji, Augustin J. Farrugia
  • Patent number: 8718280
    Abstract: In the field of computer enabled cryptography, such as a block cipher, the cipher is hardened against an attack by protecting the cipher key, by applying to it a predetermined linear permutation before using one key to encrypt or decrypt a message. 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 where the key is derived through a process and so is unknown when the software code embodying the cipher is compiled. This is typically the case where there are many users of the cipher and each has his own key, or where each user session has its own key.
    Type: Grant
    Filed: December 17, 2010
    Date of Patent: May 6, 2014
    Assignee: Apple Inc.
    Inventors: Augustin J. Farrugia, Benoit Chevallier-Mames, Mathieu Ciet, Thomas Icart
  • Patent number: 8707053
    Abstract: 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.
    Type: Grant
    Filed: February 9, 2011
    Date of Patent: April 22, 2014
    Assignee: Apple Inc.
    Inventors: Augustin J. Farrugia, Benoit Chevallier-Mames, Mathieu Ciet, Thomas Icart
  • Publication number: 20140105402
    Abstract: In the data security field, a data protection process embodied in a computer system or computing device or equivalent and which securely descrambles protected (scrambled) data. The process descrambles the data using a dynamic process employing a set of multi-level trees of deterministic functions to generate a descrambling mask value and recover the descrambled message.
    Type: Application
    Filed: December 6, 2010
    Publication date: April 17, 2014
    Inventors: Gelareh TABAN, Filip Paun, Benoit Chevallier-Mames, Augustin J. Farrugia, Mathieu Ciet
  • Patent number: 8699702
    Abstract: In the field of cryptography, such as for a computer enabled block cipher, a cipher or other cryptographic process is hardened against an attack by protecting the cipher key or subkeys by using a masking process for these keys. The subkeys are thereby protected by applying to them a mask or set of masks to hide their contents. This is especially advantageous in a “White Box” computing environment where an attacker has full access to the cipher algorithm, including the algorithm's internal state during execution. Further, this method and the associated apparatus are useful where the key is derived through a process and so is unknown when the software code embodying the cipher is compiled. This is typically the case where there are many users of the cipher and each has his own key or where each user session has its own key.
    Type: Grant
    Filed: January 10, 2011
    Date of Patent: April 15, 2014
    Assignee: Apple Inc.
    Inventors: Augustin J. Farrugia, Benoit Chevallier-Mames, Mathieu Ciet
  • Patent number: 8687803
    Abstract: In the field of computer enabled cryptography, such as a keyed block cipher having a plurality of sequenced rounds, the cipher is hardened against attack by a protection process. The protection process uses block lengths that are larger or smaller than and not an integer multiple of those of an associated standard cipher, and without using message padding. This is operative in conjunction with standard block ciphers such as the AES, DES or triple DES ciphers, and also with various block cipher cryptographic modes such as CBC or EBC.
    Type: Grant
    Filed: September 14, 2011
    Date of Patent: April 1, 2014
    Assignee: Apple Inc.
    Inventors: Augustin J. Farrugia, Benoit Chevallier-Mames, Melanie Riendeau, Mathieu Ciet, Thomas Icart
  • Patent number: 8675866
    Abstract: 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 round keys using the properties of group field automorphisms and applying 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 S-box operations, together with improved masking techniques and increasing the cipher's complexity against reverse engineering and key storage attacks.
    Type: Grant
    Filed: July 7, 2011
    Date of Patent: March 18, 2014
    Assignee: Apple Inc.
    Inventors: Augustin J. Farrugia, Benoit Chevallier-Mames, Bruno Kindarji, Mathieu Ciet, Thomas Icart
  • Patent number: 8667301
    Abstract: In a first computer (digital) data obfuscation process, data which is conventionally arranged in a data structure called an array (e.g., a table) and conventionally stored in computer or computer device memory is obfuscated (masked) by logically or mathematically combining the data, entry-by-entry, with a masking value which is computed as a logical or mathematical function of the entry itself or its index in the array, modulo a security value. The complementary unmasking value is a pointer to the entry's address in the table modulo the security value. In a second computer (digital) data obfuscation process, the addresses (location designations) in memory of a data array are themselves obfuscated (masked) by partitioning the array into blocks of entries and shuffling the order of the data entries in each block by a predetermined algorithm, resulting in a shuffled array also differing from the original array in terms of its size (the total number of entries).
    Type: Grant
    Filed: April 1, 2010
    Date of Patent: March 4, 2014
    Assignee: Apple Inc.
    Inventors: Augustin J. Farrugia, Mathieu Ciet, Benoit Chevallier-Mames
  • Patent number: 8661549
    Abstract: First source code of a computer program having a plurality of lines of instructions is received. An obfuscation process is performed on the first source code, including at least two of a shuffling operation, a fertilizing operation, an aggregating operation, and a neutralizing operation. Second source code is generated based on the obfuscation process, where the second source code, when executed by a processor, produces an identical result as the first source code.
    Type: Grant
    Filed: March 2, 2012
    Date of Patent: February 25, 2014
    Assignee: Apple Inc.
    Inventors: Benoit Chevallier-Mames, Mathieu Ciet, Thomas Icart, Augustin J. Farrugia, Bruno Kindarji
  • Patent number: 8605894
    Abstract: A cryptographic process (such as the AES cipher) which uses table look up operations (TLUs) is hardened against reverse engineering attacks intended to recover the table contents and thereby the cipher key. This hardening involves removing any one-to-one correspondence between the TLU inputs and outputs, by altering the output of the TLU dynamically, e.g. at each execution (call) of the TLU. This is done by increasing the size of the tables, applying a dynamically determined mask value to the table input and/or output, or using an inverse of the table.
    Type: Grant
    Filed: October 12, 2011
    Date of Patent: December 10, 2013
    Assignee: Apple Inc.
    Inventors: Augustin J. Farrugia, Benoit Chevallier-Mames, Bruno Kindarji, Mathieu Ciet, Thomas Icart
  • Patent number: 8553878
    Abstract: 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.
    Type: Grant
    Filed: April 14, 2010
    Date of Patent: October 8, 2013
    Assignee: Apple Inc.
    Inventors: Augustin J. Farrugia, Mathieu Ciet, Benoit Chevallier-Mames