Patents by Inventor Jan Hoogerbrugge

Jan Hoogerbrugge 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: 9641337
    Abstract: A method of gluing a cryptographic implementation of a cryptographic function to a surrounding program in a cryptographic system, including: receiving, by the cryptographic system, an input message; receiving a computed value from the surrounding program; performing, by the cryptographic system, a keyed cryptographic operation mapping the input message into an output message using the computed value from the surrounding program, wherein the output message is a correct output message when the computed value has a correct value; and outputting the output message.
    Type: Grant
    Filed: April 28, 2014
    Date of Patent: May 2, 2017
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge, Michael Patrick Peeters
  • Patent number: 9602273
    Abstract: A device and method for performing a keyed cryptographic operation mapping an input message to an output message including a first and a second round, wherein the cryptographic operation includes a key scheduling method that produces round keys based upon the encryption key, including: instructions for receiving a first input by the first round; instructions for receiving a second input by the first round; instructions for outputting the second input as a third input to the second round; instructions for performing a first cryptographic operation on the second input using a first static round key to produce a first cryptographic output; and instructions for combining first input, the first cryptographic output, and a second encoded dynamic round key to produce a fourth input to the second round, wherein the second encoded dynamic round key is produced by inputting an encoded dynamic encryption key into the key scheduling method.
    Type: Grant
    Filed: May 6, 2015
    Date of Patent: March 21, 2017
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Patent number: 9582190
    Abstract: A time manager controls one or more timing functions on a circuit. The time manager includes a data storage and a time calculator. The data storage device stores a first indication of a performance characteristic of a memory cell at a first time. The data storage device also stores a second indication of the performance characteristic of the memory cell at a second time. The time calculator is coupled to the data storage device. The time calculator calculates a time duration between the first time and the second time based on a change in the performance characteristic of the memory cell from the first indication to the second indication.
    Type: Grant
    Filed: May 13, 2014
    Date of Patent: February 28, 2017
    Assignee: NXP B.V.
    Inventors: Friso Jedema, Jan R Brands, Timotheus van Roermund, Jan Hoogerbrugge, Piotr Polak
  • Patent number: 9569639
    Abstract: A non-transitory machine-readable storage medium encoded with instructions for execution by a keyed cryptographic operation by a cryptographic system mapping an input message to an output message, wherein the cryptographic operation includes at least one round including a non-linear mapping function configured to map input data to output data, including: instructions for determining that the input data has a diversification number less than a diversification level threshold number; instructions for remapping the input data to a remapped input data, wherein the remapped input data corresponds to an input data having a diversification number greater than or equal to the diversification threshold value, and instructions for inputting the remapped input data into the non-linear mapping function to obtain output data.
    Type: Grant
    Filed: September 12, 2014
    Date of Patent: February 14, 2017
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Publication number: 20170033921
    Abstract: A method for a keyed cryptographic operation by a cryptographic system mapping an input message to an output message, including: receiving input data for the keyed cryptographic operation; calculating a first mask value based upon the input data; and applying the first mask value to a first intermediate value of the keyed cryptographic operation.
    Type: Application
    Filed: July 30, 2015
    Publication date: February 2, 2017
    Inventors: Wil Michiels, Jan Hoogerbrugge, Philippe Teuwen
  • Publication number: 20160350560
    Abstract: A method of producing a white-box implementation of a cryptographic function, including: creating, by a processor, a white-box implementation of a cryptographic function using a network of two dimensional lookup tables; identifying two dimensional lookup tables using a common index; and rewriting the identified two dimensional lookup tables as a three dimensional table.
    Type: Application
    Filed: June 1, 2015
    Publication date: December 1, 2016
    Inventors: Jan Hoogerbrugge, Wilhemus Michiels
  • Publication number: 20160350520
    Abstract: A non-transitory machine-readable storage medium encoded with instructions for execution by a keyed cryptographic operation by a cryptographic system mapping an input message to an output message, including: instructions for receiving input data for a round of the keyed cryptographic operation; instructions for determining the order of computing output portions for the round of the cryptographic function based upon portions of the input data; and instructions for computing the portions of the output data in the determined order based upon the input data.
    Type: Application
    Filed: May 29, 2015
    Publication date: December 1, 2016
    Inventors: Wil Michiels, Jan Hoogerbrugge, Philippe Teuwen
  • Publication number: 20160330019
    Abstract: A device and method for performing a keyed cryptographic operation mapping an input message to an output message including a first and a second round, wherein the cryptographic operation includes a key scheduling method that produces round keys based upon the encryption key, including: instructions for receiving a first input by the first round; instructions for receiving a second input by the first round; instructions for outputting the second input as a third input to the second round; instructions for performing a first cryptographic operation on the second input using a first static round key to produce a first cryptographic output; and instructions for combining first input, the first cryptographic output, and a second encoded dynamic round key to produce a fourth input to the second round, wherein the second encoded dynamic round key is produced by inputting an encoded dynamic encryption key into the key scheduling method.
    Type: Application
    Filed: May 6, 2015
    Publication date: November 10, 2016
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Publication number: 20160328542
    Abstract: A method of obscuring software code implementing an elliptic curve cryptography (ECC) point multiplication function, including: receiving ECC parameters including a multiplier d having N bits; transforming multiplier d into an array d(i) with ?1, 0, and +1 values while maintaining the same value for d; and generating ECC point multiplication function operations using the transformed multiplier array d(i) and N, wherein the generated ECC point multiplication function operations are split variable operations.
    Type: Application
    Filed: July 31, 2015
    Publication date: November 10, 2016
    Inventors: Jan Hoogerbrugge, Wil Michiels, Pim Vullers
  • Publication number: 20160328539
    Abstract: A method of obscuring software code including a plurality of operations, including: identifying, by a processor, an operation to be obscured; determining an equivalent split variable expression for the operation to be obscured using split variables; and replacing the operation to be obscured with the determined equivalent split variable expression.
    Type: Application
    Filed: May 5, 2015
    Publication date: November 10, 2016
    Inventors: Jan Hoogerbrugge, Wilhemus Petrus Adrianus Johannus Michiels
  • Publication number: 20160328541
    Abstract: A method of obscuring software code implementing a modular exponentiation function, including: receiving modular exponentiation parameters including an exponent e having N bits; generating a bitwise exponent array and inverse bitwise exponent array; and generating modular exponentiation function operations using the bitwise exponent array, inverse bitwise exponent array, and N, wherein the generated modular exponentiation function operations are split variable operations.
    Type: Application
    Filed: July 31, 2015
    Publication date: November 10, 2016
    Inventors: Jan Hoogerbrugge, Wil Michiels
  • Publication number: 20160328540
    Abstract: A method of obscuring software code including a data array and a plurality of operations, including: identifying, by a processor, a data array with an index to be obscured and an operation using the data array; permutating the identified data array using a permutating function; and replacing the identified operation using the permutated data array and equivalent encoded permutation function.
    Type: Application
    Filed: July 31, 2015
    Publication date: November 10, 2016
    Inventors: Jan Hoogerbrugge, Wil Michiels
  • Publication number: 20160328543
    Abstract: A method of obscuring the input and output of a modular exponentiation function, including: receiving modular exponentiation parameters including an exponent e having N bits and a modulus m; generating randomly a pre-multiplier; calculating a post-multiplier based upon the pre-multiplier, exponent e, and modulus m; multiplying an input to the modular exponentiation function by the pre-multiplier; performing the modular exponentiation function; and multiplying the output of the modular exponentiation function by the post-multiplier, wherein multiplying an input to the modular exponentiation function by the pre-multiplier, performing the modular exponentiation function, and multiplying the output of the modular exponentiation function by the post-multiplier are split variable operations.
    Type: Application
    Filed: July 31, 2015
    Publication date: November 10, 2016
    Inventors: Jan Hoogerbrugge, Wil Michiels
  • Patent number: 9485226
    Abstract: A method of performing a cryptographic operation using a cryptographic implementation in a cryptographic system, including: receiving, by the cryptographic system, an identifying string value; receiving, by the cryptographic system, an input message; performing, by the cryptographic system, a keyed cryptographic operation mapping the input message into an output message wherein the output message is the correct result when the identifying string value equals a binding string value.
    Type: Grant
    Filed: April 28, 2014
    Date of Patent: November 1, 2016
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Patent number: 9455833
    Abstract: A method of determining a fingerprint identification of a cryptographic implementation in a cryptographic system, including: receiving, by the cryptographic system, an input message that is a fingerprint identification message; performing, by the cryptographic system, a keyed cryptographic operation mapping the fingerprint identification message into an output message that includes a fingerprint identification; and outputting the output message.
    Type: Grant
    Filed: April 28, 2014
    Date of Patent: September 27, 2016
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Publication number: 20160267258
    Abstract: A non-transitory machine-readable storage medium encoded with instructions for execution by a keyed encryption operation by a cryptographic system mapping an input message having an encoded portion and a padding portion to an output message, including: instructions for receiving a padding value k; instructions for receiving the input message, wherein the padding portion has a size indicated by the padding value k; instructions for computing a first portion of the encryption operation to produce a first portion output; instructions for computing a compensation factor corresponding to the padding portion of the input message; and instructions for compensating the first portion output based upon the compensation factor.
    Type: Application
    Filed: March 13, 2015
    Publication date: September 15, 2016
    Inventors: Wil Michiels, Jan Hoogerbrugge, Joachim Trescher
  • Patent number: 9411597
    Abstract: A method for obfuscating functionality of computer software is disclosed. In an embodiment, the method involves determining a first set of instructions needed to perform a target operation and a second set of instructions for at least one or more additional operations. The second set of instructions is tuned to contain instructions such that, by executing the second set of instructions, the function of the first set of instructions can be performed. Once the first and second sets of instruction are determined and tuned, a code library is created and code fragments in the library correspond to code needed to perform the function of the first set of instructions when executed. Instructions are then added to the second set of instructions such that, when executed, will cause the functionality of the first set of instructions to be achieved.
    Type: Grant
    Filed: May 6, 2014
    Date of Patent: August 9, 2016
    Assignee: NXP B.V.
    Inventors: Philippe Teuwen, Peter Rombouts, Jan Rene Brands, Jan Hoogerbrugge
  • Patent number: 9405936
    Abstract: A method of obscuring software code including a plurality of basic blocks, including: calculating, by a processor, a checksum value of the current basic block and a pointer to the end of the current basic block; determining a preceding basic block for the current basic block; inserting the checksum value for the current basic block into the preceding basic block; and inserting instructions into the preceding basic block to determine a pointer to the beginning of the current basic block based upon the checksum value of the current basic block.
    Type: Grant
    Filed: December 16, 2014
    Date of Patent: August 2, 2016
    Assignee: NXP B.V.
    Inventors: Jan Hoogerbrugge, Wil Michiels
  • Patent number: 9380033
    Abstract: A method of enforcing security settings in a cryptographic system, including: receiving, by the cryptographic system, a first input message associated with a first security setting of a plurality of security settings; performing, by the cryptographic system, a keyed cryptographic operation mapping the first input message into a first output message, wherein the keyed cryptographic operation produces a correct output message when the cryptographic system is authorized for the first security setting, wherein each of the plurality of security settings has an associated set of input messages wherein the sets of input messages do not overlap.
    Type: Grant
    Filed: April 28, 2014
    Date of Patent: June 28, 2016
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Publication number: 20160182472
    Abstract: A non-transitory machine-readable storage medium encoded with instructions for a keyed cryptographic operation having a first and second portion for execution by a cryptographic system mapping an input message to an output message, including: instructions for outputting first cryptographic data from a first portion the cryptographic operation to a secure hardware device implementing a secure function on the data; instructions for receiving output data from the secure hardware device; instructions for implementing an inverse of the secure function on the output data; and instructions for performing a second portion of the cryptographic operation on the inverted output data, wherein the instructions for implementing an inverse of the secure function on the output data are securely merged with the instructions for performing the second portion of the cryptographic operation on the inverted output data so that the inverted output is not accessible to an attacker.
    Type: Application
    Filed: December 19, 2014
    Publication date: June 23, 2016
    Inventors: Wil Michiels, Jan Hoogerbrugge