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).

  • Publication number: 20190132116
    Abstract: A method for implementing a pseudo-random function (PRF) using a white-box implementation of a cryptographic function in N rounds, including: receiving an input to the PRF; receiving a cryptographic key in a first round; encrypting, using the white-box implementation of the cryptographic function and the cryptographic key, an input message that is one of M possible input messages based upon a portion of the input to produce a first output; for each succeeding round: encrypting, using the white-box implementation of the cryptographic function and an ith cryptographic key, further input messages that are one of M possible input messages based upon a further portion of the input to produce an ith output, wherein the ith cryptographic key is the output from the preceding round, wherein the white-box implementation of the cryptographic function only produces a correct output for the M possible input messages and produces an incorrect output for input messages that are not one of the M possible input messages.
    Type: Application
    Filed: October 27, 2017
    Publication date: May 2, 2019
    Inventors: Wilhelmus Petrus Adrianus Johannus MICHIELS, Marcel MEDWED, Jan HOOGERBRUGGE, Ventzislav NIKOV, Bruce MURRAY, Joppe Willem BOS
  • Patent number: 10235506
    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: Grant
    Filed: July 31, 2015
    Date of Patent: March 19, 2019
    Assignee: NXP B.V.
    Inventors: Jan Hoogerbrugge, Wil Michiels
  • Publication number: 20190081797
    Abstract: Various embodiments relate to a method for producing a digital signature using a white-box implementation of a cryptographic digital signature function, including: receiving a input message; hashing the input message; generating a nonce based upon the input message and the white-box implementation of the cryptographic digital signature function; and computing a digital signature of the input using the nonce.
    Type: Application
    Filed: September 13, 2017
    Publication date: March 14, 2019
    Inventors: Joppe Willem BOS, Jan HOOGERBRUGGE, Wilhelmus Petrus Adrianus Johannus MICHIELS, Rudi VERSLEGERS
  • Patent number: 10204229
    Abstract: A data processing system having rich execution environment (REE) and a trusted execution environment (TEE) is provided. In the data processing system, an unsecure memory is coupled to the REE and used for storing encrypted data for use in the TEE. The TEE may have a cache for storing the encrypted data after it is decrypted. The data in both the memory and the cache is organized in blocks, and the cache is smaller than the memory. An interpreter is provided in the TEE, along with a service block in the REE, for fetching and decrypting the data to be stored in the cache. The interpreter checks an integrity of the decrypted data using a hash tree having multiple levels. In the event of a cache miss, all blocks of the hash tree in a path from the data block to a root block are retrieved from the memory in one access operation. A method for operating the cache in the data processing system is also provided.
    Type: Grant
    Filed: March 21, 2017
    Date of Patent: February 12, 2019
    Assignee: NXP B.V.
    Inventors: Jan Hoogerbrugge, Wilhelmus Petrus Adrianus Johannus Michiels, Joppe Willem Bos
  • Publication number: 20180359081
    Abstract: A method for mapping an input message to a message authentication code (MAC) by a white-box implementation of a keyed cryptographic operation in a cryptographic system that includes using a white-box implementation of the block cipher in a MAC.
    Type: Application
    Filed: June 7, 2017
    Publication date: December 13, 2018
    Inventors: Wilhelmus Petrus Adrianus Johannus MICHIELS, Jan HOOGERBRUGGE, Joppe Willem BOS
  • Publication number: 20180359082
    Abstract: A method for producing a white-box implementation of a cryptographic function using garbled circuits, including: producing, by a first party, a logic circuit implementing the cryptographic function using a plurality of logic gates and a plurality of wires; garbling the produced logic circuit, by the first party, including garbling the plurality of logic gates and assigning two garbled values for each of the plurality of wires; and providing a second party the garbled logic circuit and a first garbled circuit input value.
    Type: Application
    Filed: June 8, 2017
    Publication date: December 13, 2018
    Inventors: Joppe Willem BOS, Jan HOOGERBRUGGE, Marc JOYE, Wilhelmus Petrus Adrianus Johannus MICHIELS
  • Publication number: 20180351743
    Abstract: A method is provided for performing a cryptographic operation in a white-box implementation on a mobile device. The cryptographic operation is performed in the mobile device for a response to a challenge from a mobile device reader. The mobile device reader includes a time-out period within which the cryptographic operation must be completed by the mobile device. In accordance with an embodiment, a first time period to complete the cryptographic operation on the mobile device is determined. A predetermined number of dummy computations are added to the cryptographic operation to increase the first time period to a second time period. The second time period is only slightly less than the time-out period by a predetermined safety value to make it less likely a relay attack with be successful.
    Type: Application
    Filed: May 30, 2017
    Publication date: December 6, 2018
    Inventors: WILHELMUS PETRUS ADRIANUS JOHANNUS MICHIELS, JAN HOOGERBRUGGE
  • Publication number: 20180351918
    Abstract: A method for distributing a software application having an encryption program is provided. In the method, the encryption program is generated for securing the software application, the encryption program being implemented by applying user diversification data that is unique to a user device having the encryption program and software application. The encryption program with the software application is distributed to a plurality of users without including the user diversification data. The user diversification data is made available for downloading from a computer server by each of the plurality of users. The user diversification data is downloaded separately from the encryption program, and the user diversification data is unique to, and generated specifically for, each of the plurality of users. This allows the distribution of application software without having to create a unique program for every user.
    Type: Application
    Filed: June 6, 2017
    Publication date: December 6, 2018
    Inventors: JAN HOOGERBRUGGE, Wilhelmus Petrus Adrianus Johannus Michiels, Joppe Willem Bos
  • Patent number: 10140437
    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: Grant
    Filed: July 31, 2015
    Date of Patent: November 27, 2018
    Assignee: NXP B.V.
    Inventors: Jan Hoogerbrugge, Wil Michiels
  • Patent number: 10097342
    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: Grant
    Filed: July 30, 2015
    Date of Patent: October 9, 2018
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge, Philippe Teuwen
  • Publication number: 20180276392
    Abstract: A data processing system having rich execution environment (REE) and a trusted execution environment (TEE) is provided. In the data processing system, an unsecure memory is coupled to the REE and used for storing encrypted data for use in the TEE. The TEE may have a cache for storing the encrypted data after it is decrypted. The data in both the memory and the cache is organized in blocks, and the cache is smaller than the memory. An interpreter is provided in the TEE, along with a service block in the REE, for fetching and decrypting the data to be stored in the cache. The interpreter checks an integrity of the decrypted data using a hash tree having multiple levels. In the event of a cache miss, all blocks of the hash tree in a path from the data block to a root block are retrieved from the memory in one access operation. A method for operating the cache in the data processing system is also provided.
    Type: Application
    Filed: March 21, 2017
    Publication date: September 27, 2018
    Inventors: JAN HOOGERBRUGGE, WILHELMUS PETRUS ADRIANUS JOHANNUS MICHIELS, JOPPE WILLEM BOS
  • Patent number: 10068114
    Abstract: A method for implementing a host card emulation (HCE) service in a remote near field communication (NFC) device is provided. In the method, a first command application protocol data unit (APDU) is received at the remote NFC device from an NFC reader. A first response to the first command APDU is computed. A second command APDU from the NFC reader is predicted that is likely to follow receipt of the first command APDU from the NFC reader. A second response to the predicted second command APDU is computed. A third command APDU is received from the NFC reader. It is determined if the prediction of the second command APDU matches the third command APDU. If the second and third command APDUs match, then the computed second response is send directly to the NFC reader without having to traverse a NFC stack.
    Type: Grant
    Filed: September 12, 2017
    Date of Patent: September 4, 2018
    Assignee: NXP B.V.
    Inventors: Jan Hoogerbrugge, Wilhelmus Petrus Adrianus Johannus Michiels, Joppe Willem Bos
  • Patent number: 10068070
    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: Grant
    Filed: July 31, 2015
    Date of Patent: September 4, 2018
    Assignee: NXP B.V.
    Inventors: Jan Hoogerbrugge, Wil Michiels, Pim Vullers
  • Publication number: 20170373828
    Abstract: A method for performing a secure function in a data processing system is provided. In accordance with one embodiment, the method includes generating and encoding an encryption key. The encoded encryption key may be encrypted in a key store in a trusted execution environment (TEE) of the data processing system. The encrypted encryption key may encrypted, stored, and decrypted in the key store in the TEE, but used in a white-box implementation to perform a secure function. The secure function may include encrypting a value in the white-box implementation for securing a monetary value on, for example, a smart card. In one embodiment, each time an encryption key or decryption key is used, it is changed to a new key. The method makes code lifting and rollback attacks more difficult for an attacker because the key is stored separately from, for example, a white-box implementation in secure storage.
    Type: Application
    Filed: June 27, 2016
    Publication date: December 28, 2017
    Inventors: WILHELMUS PETRUS ADRIANUS JOHANNUS MICHIELS, Jan Hoogerbrugge, Joppe Willem Bos
  • Patent number: 9838198
    Abstract: A method of performing a keyed cryptographic operation mapping an input message to an output message, wherein the input message comprises m input data and the output message comprises m output data and wherein the cryptographic operation includes at least one round and the cryptographic operation specifies a substitution box for mapping input data into output data, including: transforming each of the m input data into n output data using n split substitution boxes, wherein the n split substitution boxes sum to the specified substitution box; and mixing and combining the m×n output data.
    Type: Grant
    Filed: March 19, 2014
    Date of Patent: December 5, 2017
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Publication number: 20170346633
    Abstract: A system for securely computing an elliptic curve scalar multiplication in an unsecured environment, including: a secure processor including secure memory, the secure processor configured to: split a secure scalar K into m2 random values ki, where i is an integer index; randomly select m1?m2 values ki for the indices m2<i?m1; select m1 mask values ?i; compute m1 residues ci based upon random residues ai, ??(i)?1, and k?(i), wherein ?(i) is a random permutation; compute m1 elliptic curve points Gi based upon random residues ai and an elliptic point to be multiplied; receive m1 elliptic curve points; and compute the elliptic curve scalar multiplication by combining a portion of the received elliptic curve points and removing the mask values ?i from the portion of the received elliptic curve points; a memory device; and a processor in communication with the memory device, the processor being configured to: receive m1 residues ci and elliptic curve points Gi; compute m1 elliptic curve points Pi based upon the
    Type: Application
    Filed: May 27, 2016
    Publication date: November 30, 2017
    Inventors: Joppe Willem Bos, Artur Tadeusz Burchard, Jan Hoogerbrugge, Wilhelmus Petrus Adrianus Johannus Michiels
  • Patent number: 9819486
    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: Grant
    Filed: December 19, 2014
    Date of Patent: November 14, 2017
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Patent number: 9665699
    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: Grant
    Filed: March 13, 2015
    Date of Patent: May 30, 2017
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge, Joachim Trescher
  • Patent number: 9654279
    Abstract: A method of performing a secure function on data inputs by a security module, including: receiving an encrypted data value by the security module; decrypting the encrypted data value using a white-box decryption block cipher and encoding the decrypted data value, wherein the data value is invisible to an attacker; performing a function on the encoded data value and producing an encoded result of the function, wherein the data value and the result are invisible to the attacker; decoding the encoded result of the programmed function and then encrypting the result using a white-box encryption block cipher, wherein the result is invisible to the attacker.
    Type: Grant
    Filed: March 20, 2014
    Date of Patent: May 16, 2017
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge
  • Patent number: 9639674
    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: Grant
    Filed: December 18, 2014
    Date of Patent: May 2, 2017
    Assignee: NXP B.V.
    Inventors: Wil Michiels, Jan Hoogerbrugge