Patents by Inventor Antoine Monsifrot

Antoine Monsifrot 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: 10484671
    Abstract: A method for displaying a content from 4D light field data is described. Such method is executed by an electronic device, and is remarkable in that it comprises changing point of view of the content and/or a focus plane associated with the content, according to viewing rights.
    Type: Grant
    Filed: May 28, 2016
    Date of Patent: November 19, 2019
    Assignee: InterDigital CE Patent Holdings
    Inventors: Marc Eluard, Antoine Monsifrot, Olivier Heen
  • Patent number: 10120987
    Abstract: A device comprising a hardware processor and memory storing an application of an application package comprising a first version and a second version of the application, the first version being intended to be executed on a genuine device and the second version on a jailbroken device. The hardware processor determines a jailbreak status of the device, i.e. genuine or jailbroken and derives a key based on at least the jailbreak status. In case the device is genuine, the hardware processor deciphers using the key at least a first part of the first version and executes, the first version using the first deciphered part, for example a jump table used to execute CFG flattened code. In case the jailbreak status is jailbroken, the hardware processor deciphers using the key at least a first part of the second version and executes the second version using the second deciphered part, for example comprising executable instructions.
    Type: Grant
    Filed: December 9, 2016
    Date of Patent: November 6, 2018
    Assignee: INTERDIGITAL CE PATENT HOLDINGS
    Inventors: Antoine Monsifrot, Charles Salmon-Legagneur, Alain Durand
  • Patent number: 9904526
    Abstract: Control Flow Graph flattening of a function comprising a plurality of basic blocks having an address and at least one instruction.
    Type: Grant
    Filed: October 24, 2015
    Date of Patent: February 27, 2018
    Assignee: Thomson Licensing
    Inventors: Charles Salmon-Legagneur, Antoine Monsifrot
  • Publication number: 20170169196
    Abstract: A device comprising a hardware processor and memory storing an application of an application package comprising a first version and a second version of the application, the first version being intended to be executed on a genuine device and the second version on a jailbroken device. The hardware processor determines a jailbreak status of the device, i.e. genuine or jailbroken and derives a key based on at least the jailbreak status. In case the device is genuine, the hardware processor deciphers using the key at least a first part of the first version and executes, the first version using the first deciphered part, for example a jump table used to execute CFG flattened code. In case the jailbreak status is jailbroken, the hardware processor deciphers using the key at least a first part of the second version and executes the second version using the second deciphered part, for example comprising executable instructions.
    Type: Application
    Filed: December 9, 2016
    Publication date: June 15, 2017
    Inventors: ANTOINE MONSIFROT, CHARLES SALMON-LEGAGNEUR, ALAIN DURAND
  • Publication number: 20160364569
    Abstract: Protecting a module intended to be executed by an executing device that has an operating system and that is either genuine or jailbroken is described.
    Type: Application
    Filed: June 8, 2016
    Publication date: December 15, 2016
    Inventors: Antoine MONSIFROT, Charles SALMON-LEGAGNEUR
  • Publication number: 20160353087
    Abstract: A method for displaying a content from 4D light field data is described. Such method is executed by an electronic device, and is remarkable in that it comprises changing point of view of the content and/or a focus plane associated with the content, according to viewing rights.
    Type: Application
    Filed: May 28, 2016
    Publication date: December 1, 2016
    Inventors: Marc ELUARD, Antoine MONSIFROT, Olivier HEEN
  • Patent number: 9471758
    Abstract: A function of a software program is stored in a memory during execution in a device of the software program. A processor relocates the function in a region of the memory comprising dummy code, transforms the dummy code in a predictable manner, generates a predicted checksum for the region based on a previous checksum, generates a calculated checksum over the region, and verifies the integrity of the function by comparing the predicted checksum and the calculated checksum. Also provided are a device and a computer program product.
    Type: Grant
    Filed: February 16, 2011
    Date of Patent: October 18, 2016
    Assignee: Thomson Licensing
    Inventors: Charles Salmon-Legagneur, Antoine Monsifrot
  • Patent number: 9442704
    Abstract: Control Flow Graph flattening of a function of software code including a plurality of basic blocks having an address and at least one instruction is described. A processor uses a transition function to obtain an address in a jump table of at least one diffusion function coefficient of a subsequent block of the plurality of basic blocks. Thereafter, the processor generates and inserts branch functions, assigning a value to the label of each of the plurality of basic blocks and then obtains coefficients for each of the plurality of basic blocks.
    Type: Grant
    Filed: October 24, 2015
    Date of Patent: September 13, 2016
    Assignee: THOMSON LICENSING
    Inventors: Charles Salmon-Legagneur, Antoine Monsifrot
  • Publication number: 20160239671
    Abstract: An application comprising a code part is protected in a device including a processor that encrypts the code part to be protected to obtain a protected part using an encryption key, replaces the code part to be protected by valid instructions different from the code part to be protected, stores information necessary for decryption of the protected part so that the information may be retrieved by an unprotection function, stores the unprotection function so that the unprotection function can be called by a calling function, and inserts calls to the unprotection function and a protection function around a call to the code part to be protected in the application, the protection function being configured to protect the code part. When executed, a call to the unprotection function decrypts the protected part which is written over the valid instructions where it is executed.
    Type: Application
    Filed: February 13, 2016
    Publication date: August 18, 2016
    Inventors: Charles SALMON-LEGAGNEUR, Antoine MONSIFROT
  • Patent number: 9378395
    Abstract: A device stores program code in a plurality of slots in its memory. When a processor of the device receives a call to an encrypted function, it uses a slot table to find the location of the cipher function and the cipher module and the key to decrypt the encrypted module. The encrypted module is decrypted, executed, re-encrypted and moved to a new memory slot. The cipher function used is moved to a further new slot and the slot table is updated. Also provided is a method and a computer program support. The invention can make it more difficult to analyse execution traces of the program code.
    Type: Grant
    Filed: June 11, 2013
    Date of Patent: June 28, 2016
    Assignee: THOMSON LICENSING
    Inventors: Antoine Monsifrot, Charles Salmon-Legagneur
  • Publication number: 20160117155
    Abstract: Control Flow Graph flattening of a function comprising a plurality of basic blocks having an address and at least one instruction.
    Type: Application
    Filed: October 24, 2015
    Publication date: April 28, 2016
    Inventors: Charles SALMON-LEGAGNEUR, Antoine MONSIFROT
  • Publication number: 20160117153
    Abstract: Control Flow Graph flattening of a function of software code comprising a plurality of basic blocks having an address and at least one instruction.
    Type: Application
    Filed: October 24, 2015
    Publication date: April 28, 2016
    Inventors: Charles SALMON-LEGAGNEUR, Antoine MONSIFROT
  • Publication number: 20150242192
    Abstract: It is provided a method for hardening of control flow graph flattening, wherein each Basic Block is stored on a slot and jumps to a single function that computes the address of the next Basic Block, comprising the steps of: each time after executing a Basic Block, copying the Basic Block at a start offset selected in an available slot; inserting at least one junk code at least one of before, after and inside the Basic Block on the basis of a reference image of the Basic Block; and updating a database including a current address and image of each Basic Block.
    Type: Application
    Filed: February 26, 2015
    Publication date: August 27, 2015
    Inventors: Antoine MONSIFROT, Charles SALMON-LEGAGNEUR
  • Patent number: 8762966
    Abstract: Compiled computer code comprising computer code instructions organized in a plurality of basic blocks is obfuscated by replacing a jump instruction in a first basic block with a function call with at least one parameter, wherein the function call when executed determines the address of the next function to execute in dependence on the parameter; inserting into the compiled computer code an instruction that allocates a value to the parameter, the value being such that the address determined by the function call corresponds to the address of the replace jump instruction. The allocation function is inserted into the computer code in a second basic block, different from the first basic block, preferably using information from a control flow graph. This can ensure that the obfuscated code cannot be disassembled without information from the CFG, while the CFG cannot be generated from the obfuscated code. Also provided is a device for code obfuscation.
    Type: Grant
    Filed: August 17, 2009
    Date of Patent: June 24, 2014
    Assignee: Thomson Licensing
    Inventors: Antoine Monsifrot, Fabien Lahoudere
  • Publication number: 20130332746
    Abstract: A device stores program code in a plurality of slots in its memory. When a processor of the device receives a call to an encrypted function, it uses a slot table to find the location of the cipher function and the cipher module and the key to decrypt the encrypted module. The encrypted module is decrypted, executed, re-encrypted and moved to a new memory slot. The cipher function used is moved to a further new slot and the slot table is updated. Also provided is a method and a computer program support. The invention can make it more difficult to analyse execution traces of the program code.
    Type: Application
    Filed: June 11, 2013
    Publication date: December 12, 2013
    Inventors: Antoine MONSIFROT, Charles SALMON-LEGAGNEUR
  • Publication number: 20130318624
    Abstract: A method for controlling distribution of licenses, a license being for an excerpt of a content item, the content item comprising a set of continuous units, each excerpt comprising a subset of the set of continuous units, A device receives an identifier of a receiver of a license, and the license or a request to generate the license, the license or the request to generate the license comprising a content identifier and at least one indicator of the units covered by the license; retrieves stored information regarding licenses previously delivered to the receiver; compares a limit value for the content item with the stored information combined with information from the license or the request to generate the license; and allows the receiver access to the license only if the limit value is not exceeded by the stored information combined with information from the license or the request to generate the license Also provided is the device.
    Type: Application
    Filed: February 6, 2012
    Publication date: November 28, 2013
    Inventors: Antoine Monsifrot, Gwenael Doerr, Olivier Courtay, Antoine Robert, Marc Joye
  • Patent number: 8341426
    Abstract: A method of encrypting compiled computer code instructions to be decrypted instruction by instruction during execution. The computer code instructions are encrypted using a chaining mode so that an encrypted instruction depends on the values of the instruction, the value of the preceding instruction and a pseudo-random number. As it may happen that the instruction can be arrived at from more than one preceding instruction, at least one of the preceding instructions is associated with a random number compensator for use during decryption of the encrypted instruction, so that the decryption of the encrypted instruction yields the same result regardless of which the preceding instruction was. Also provided are an encryption device, a decryption device and method, and a digital support medium storing encrypted compiled computer code instructions.
    Type: Grant
    Filed: December 10, 2009
    Date of Patent: December 25, 2012
    Assignee: Thomson Licensing
    Inventors: Stéphane Onno, Mohamed Karroumi, Antoine Monsifrot
  • Patent number: 8259934
    Abstract: An encryption chaining mode takes plaintext block N, generates encryption key N by combining, preferably by XOR, encryption key N-1 and plaintext block N-1 and encrypts plaintext block N using an encryption algorithm with encryption key N to output ciphertext block N. Encryption key for the first plaitnext block is generated by XOR-ing a random Initialization vector and a random intialization key K. In a preferred embodiment, initialization key K is subkeys resulting form a key schedule algorithm and encryption key N-1 is only one of the subkeys. Encryption key for the first plaintext block is generated by XOR-ing a random Initialization vector and one subkey resulting form a key schedule algorithm. Also provided is a corresponding decryption method, an encryption device, a decryption device.
    Type: Grant
    Filed: December 1, 2009
    Date of Patent: September 4, 2012
    Assignee: Thomson Licensing
    Inventors: Mohamed Karroumi, Stéphane Onno, Antoine Monsifrot
  • Publication number: 20110258516
    Abstract: A function of a software program is stored in a memory during execution in a device of the software program. A processor relocates the function in a region of the memory comprising dummy code, transforms the dummy code in a predictable manner, generates a predicted checksum for the region based on a previous checksum, generates a calculated checksum over the region, and verifies the integrity of the function by comparing the predicted checksum and the calculated checksum. Also provided are a device and a computer program product.
    Type: Application
    Filed: February 16, 2011
    Publication date: October 20, 2011
    Inventors: Charles Salmon-Legagneur, Antoine Monsifrot
  • Publication number: 20110202996
    Abstract: Self-modifying software code comprising a number of modules that each may be modified to be in a plurality of states during execution. In order to verify the integrity of such code, the different states of the code are calculated. For each state a checksum, e.g. a hash value, is generated for at least part of the code. During execution the state of the code is changed, modifying a module, and an integrity check is performed using the checksum for the state of the code. The checksum may be stored in a look-up table or it may be embedded in the integrity verification function. A state variable indicating the state of the modules may be used to look-up the checksum in the table. Possible states of a module is encrypted and decrypted. Also provided is an apparatus for generating protected software code.
    Type: Application
    Filed: February 15, 2011
    Publication date: August 18, 2011
    Inventors: Antoine Monsifrot, Charles Salmon-Legagneur