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: 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: 20160182227
    Abstract: A method of implementing a cryptographic operation using a substitution box, comprising: specifying a set of self-equivalent functions for the substitution box; determining the minimum diversification number of the substitution box over the set of self-equivalent functions; comparing the minimum diversification number to a threshold value; including and implementing a cryptographic operation with selected substitution box when the minimum diversification number is greater or equal to a threshold value.
    Type: Application
    Filed: December 19, 2014
    Publication date: June 23, 2016
    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
  • Publication number: 20160180066
    Abstract: A method of performing a keyed cryptographic operation by a cryptographic system mapping an encoded input message to an output message, including: receiving an encoding selection parameter p; receiving the encoded input message, wherein the encoding on the input message corresponds to the encoding selection parameter p; decoding the input message using an inverse of a default input encoding; computing a first portion of the cryptographic operation on the decoded input message to produce a first portion output; and compensating the first portion output based upon the encoding selection parameter p.
    Type: Application
    Filed: December 18, 2014
    Publication date: June 23, 2016
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Publication number: 20160171246
    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: Application
    Filed: December 16, 2014
    Publication date: June 16, 2016
    Inventors: Jan Hoogerbrugge, Wil Michiels
  • Patent number: 9369812
    Abstract: A circuit and a method are used estimate quality of the output of a wireless receiver. This quality measure is used to control the supply voltage and thereby provide power savings.
    Type: Grant
    Filed: November 21, 2013
    Date of Patent: June 14, 2016
    Assignee: NXP B.V.
    Inventor: Jan Hoogerbrugge
  • Patent number: 9363244
    Abstract: A method of authorization in a cryptographic system that provides separate authorization for a plurality of different input message groups using a single cryptographic key, including: receiving, by the cryptographic system, a first input message from a first input message group; 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 input message group, wherein the keyed cryptographic operation does not produce a correct output when the cryptographic system is not authorized for the first input message group, and wherein each of the plurality of input message groups 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 7, 2016
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Patent number: 9338145
    Abstract: A method of patching a cryptographic implementation without changing a key in a cryptographic system, including: sending a message from a first message set to the cryptographic implementation, wherein the first message uses a first portion of the cryptographic implementation; deciding to patch the cryptographic implementation; sending a second message from a second message set to the cryptographic implementation after deciding to patch the cryptographic implementation, wherein the second message use a second portion of the cryptographic implementation that is not used for any messages in the first message set.
    Type: Grant
    Filed: April 28, 2014
    Date of Patent: May 10, 2016
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Patent number: 9329622
    Abstract: This invention provides a clock control circuit, which can be added to any pipeline-processor to solve timing problems arising from variations due to process outcome and environmental conditions. Critical instructions are detected (instructions that exercise critical paths) in conjunction with environmental sensing (such as process, temperature and voltage). This information is used to control cycle stealing.
    Type: Grant
    Filed: April 3, 2014
    Date of Patent: May 3, 2016
    Assignee: NXP B.V.
    Inventors: Hamed Fatemi, Rinze Ida Mechtildis Peter Meijer, Ghiath Al-Kadi, Surendra Guntur, Jan Hoogerbrugge
  • Publication number: 20160078250
    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: Application
    Filed: September 12, 2014
    Publication date: March 17, 2016
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Publication number: 20150372989
    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 indentifying string value is one of a set of binding string values, wherein the set includes a plurality of binding string values.
    Type: Application
    Filed: June 24, 2014
    Publication date: December 24, 2015
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Patent number: 9218241
    Abstract: One example discloses a wireless receiver circuit comprising: a wireless receiver unit having a first voltage power supply and providing an output as a stream of digital output bits; a parity check unit at the output; a control unit configured to derive a control output based on the difference between the parity check unit output and a target parity error rate; and a voltage regulator for providing the first voltage to the wireless receiver unit, in dependence on the control unit output wherein the voltage regulator implements a voltage overscaling function for the wireless receiver unit and is operable to overscale the first voltage in response to a parity error rate of less than 0.5 and to drive the first voltage to a predetermined maximum voltage value in response to a parity error rate of 0.5.
    Type: Grant
    Filed: November 21, 2013
    Date of Patent: December 22, 2015
    Assignee: NXP, B.V.
    Inventor: Jan Hoogerbrugge
  • Publication number: 20150331609
    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: Application
    Filed: May 13, 2014
    Publication date: November 19, 2015
    Applicant: NXP B.V.
    Inventors: Friso Jedema, Jan R. Brands, Timotheus van Roermund, Jan Hoogerbrugge, Piotr Polak
  • Publication number: 20150324585
    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: Application
    Filed: May 6, 2014
    Publication date: November 12, 2015
    Applicant: NXP B.V.
    Inventors: Philippe Teuwen, Peter Rombouts, Jan Rene Brands, Jan Hoogerbrugge
  • Publication number: 20150310193
    Abstract: A method of obscuring software code including a plurality of basic blocks wherein the basic blocks have an associated identifier (ID), including: determining, by a processor, for a first basic block first predecessor basic blocks, wherein first predecessor basic blocks jump to the first basic block and the first basic block jumps to a next basic block based upon a next basic block ID; producing, by the processor, a mask value based upon the IDs of first predecessor basic blocks, wherein the mask value identifies common bits of the IDs of the first predecessor basic blocks; and inserting, by the processor, an instruction in the first basic block to determine a next basic block ID based upon the mask value and an ID of one of the first predecessor basic blocks.
    Type: Application
    Filed: April 23, 2014
    Publication date: October 29, 2015
    Applicant: NXP B.V.
    Inventors: Jan Hoogerbrugge, Phillippe Teuwen, Wil Michiels
  • Publication number: 20150312224
    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: Application
    Filed: April 28, 2014
    Publication date: October 29, 2015
    Applicant: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge