Patents by Inventor Joppe Willem Bos

Joppe Willem Bos 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: 10171234
    Abstract: A method for a method for mapping an input message to an output message by a keyed cryptographic operation in a cryptographic system, including a plurality of rounds wherein each round has a substitution layer, wherein wide encoding is used on the substitution layer in the rounds that require protection from attacks.
    Type: Grant
    Filed: December 16, 2015
    Date of Patent: January 1, 2019
    Assignee: NXP B.V.
    Inventors: Wilhelmus Petrus Adrianus Johannus Michiels, Joppe Willem Bos, Philippe Teuwen
  • 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: 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
  • 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
  • Publication number: 20180212767
    Abstract: A method is provided for performing elliptic curve cryptography that reduces the number of required computations to produce, for example, a key pair. The number of computations is reduced by changing how a random nonce used in the computations is selected. In an embodiment, a look-up table is generated having pre-computed scalar values and elliptic curve points. Every time a new pseudo-random value is created for use in the ECDSA, a combination of the look-up table values is used to create multiple intermediate values. One of the multiple intermediate values is randomly chosen as a replacement value for one of the existing table entries. Each time the look-up table is used, multiple entries in the look-up table are updated to new look-up table values as described. In this manner, new randomness is provided in every step to more e?ciently generate the next pseudo-random nonce as a combination of multiple internally stored temporary look-up table values. Alternately, another mathematical group may be used.
    Type: Application
    Filed: January 24, 2017
    Publication date: July 26, 2018
    Inventors: JOPPE WILLEM BOS, BJORN FAY, BRUCE MURRAY
  • Publication number: 20180115419
    Abstract: A method is provided for generating an elliptic curve cryptography key pair that uses two topologically identical pseudo-random number generators operating in parallel and in step with each other. One generator operates in the scalar number domain and the other generator operates in the elliptic curve point domain. Parallel sequences of pseudo-random elliptic curve points aG and corresponding scalars a are generated in this manner. A scalar a becomes a private key and an elliptic curve point aG is a public key of a key pair. Each generator is advanced by one iteration successively, and the isomorphic relationship ensures that the point domain generator always contains values which are multiples of the system base point according to values contained in the corresponding position in the number domain generator. In one embodiment, the pseudo-random number generators are each characterized as being lagged Fibonacci generators.
    Type: Application
    Filed: October 26, 2016
    Publication date: April 26, 2018
    Inventors: Joppe Willem Bos, Bjorn Fay, Bruce Murray
  • Patent number: 9942038
    Abstract: Various embodiments relate to a device for generating code which implements modular exponentiation, the device including: a memory used to store a lookup table; and a processor in communication with the memory, the processor configured to: receive information for a generated randomized addition chain; output code for implementing the modular exponentiation which loads elements from the lookup table including intermediate results which utilize the information for a generated randomized addition chain; and output code for implementing the modular exponentiation which uses the loaded elements to compute the next element.
    Type: Grant
    Filed: November 4, 2015
    Date of Patent: April 10, 2018
    Assignee: NXP B.V.
    Inventor: Joppe Willem Bos
  • 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
  • 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
  • Publication number: 20170180119
    Abstract: A method for a method for mapping an input message to an output message by a keyed cryptographic operation in a cryptographic system, the keyed cryptographic operation including a plurality of substitution layers and state data, including: mapping the input message to first state data in a first substitution layer of the keyed cryptographic operation, wherein the first substitution layer includes N basic blocks that implement the first substitution layer and wherein a non-linear encoding having a first size is placed on the inputs and outputs of the N basic blocks of the first substitution layer, where N is an integer; mapping the first state data to second state data in a plurality of intermediate substitution layers of the keyed cryptographic operation, wherein the intermediate substitution layers include M blocks that implement the intermediate substitution layers and wherein a plurality of non-linear encodings having a second size are placed on the inputs and outputs of the M basic blocks of the intermedi
    Type: Application
    Filed: December 16, 2015
    Publication date: June 22, 2017
    Inventors: Wilhelmus Petrus Adrianus Johannus Michiels, Joppe Willem Bos, Philippe Teuwen
  • Publication number: 20170126407
    Abstract: Various embodiments relate to a device for generating code which implements modular exponentiation, the device including: a memory used to store a lookup table; and a processor in communication with the memory, the processor configured to: receive information for a generated randomized addition chain; output code for implementing the modular exponentiation which loads elements from the lookup table including intermediate results which utilize the information for a generated randomized addition chain; and output code for implementing the modular exponentiation which uses the loaded elements to compute the next element.
    Type: Application
    Filed: November 4, 2015
    Publication date: May 4, 2017
    Inventor: Joppe Willem Bos
  • Publication number: 20160191233
    Abstract: The subject disclosure is directed towards secure computations of encrypted data over a network. In response to user desired security settings with respect to the encrypted data, software/hardware library components automatically select parameter data for configuring a fully homomorphic encryption scheme to secure the encrypted data items while executing a set of computational operations. A client initiates the set of computational operations via the library components and if requested, receives secure computation results in return.
    Type: Application
    Filed: March 7, 2016
    Publication date: June 30, 2016
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Jacob J Loftus, Michael Naehrig, Joppe Willem Bos, Kristin Estella Lauter
  • Patent number: 9306738
    Abstract: The subject disclosure is directed towards secure computations of encrypted data over a network. In response to user desired security settings with respect to the encrypted data, software/hardware library components automatically select parameter data for configuring a fully homomorphic encryption scheme to secure the encrypted data items while executing a set of computational operations. A client initiates the set of computational operations via the library components and if requested, receives secure computation results in return.
    Type: Grant
    Filed: December 21, 2012
    Date of Patent: April 5, 2016
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Jacob J. Loftus, Michael Naehrig, Joppe Willem Bos, Kristin Estella Lauter
  • Publication number: 20140177828
    Abstract: The subject disclosure is directed towards secure computations of encrypted data over a network. In response to user desired security settings with respect to the encrypted data, software/hardware library components automatically select parameter data for configuring a fully homomorphic encryption scheme to secure the encrypted data items while executing a set of computational operations. A client initiates the set of computational operations via the library components and if requested, receives secure computation results in return.
    Type: Application
    Filed: December 21, 2012
    Publication date: June 26, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Jacob J. Loftus, Michael Naehrig, Joppe Willem Bos, Kristin Estella Lauter