Generating integers for cryptographic protocols
First Claim
1. A lattice-based cryptography method comprising:
- obtaining a first plurality of digits based on pseudorandom data from a pseudorandom number generator, the first plurality of digits representing an integer in a first number system;
determining whether to reject the pseudorandom data based on comparing the integer with a second threshold that is based on a second number system, wherein comparing the integer with the second threshold reduces a probability of rejecting the pseudorandom data relative to comparing the integer with a first threshold that is based on the first number system;
in response to determining not to reject the pseudorandom data, converting the first plurality of digits to a second plurality of digits, the second plurality of digits representing the integer in the second number system;
by operation of a processor, generating a plurality of integers in the first number system based on the second plurality of digits;
producing an array of integers each less than a modulus, the array of integers comprising the plurality of integers; and
using the array of integers in a lattice-based cryptography protocol executed by computer nodes configured to exchange information over a communication channel.
1 Assignment
0 Petitions
Accused Products
Abstract
In a general aspect, pseudorandom integers are generated for use in a cryptographic protocol. In some aspects, a first plurality of digits are obtained and converted to a second plurality of digits. The first plurality of digits (e.g., bits) represent an integer in a first number system (e.g., binary), and the second plurality of digits (e.g., trits) represent the integer in a second number system (e.g., trinary). A plurality of integers in the first number system are generated based on the second plurality of digits, and an array of integers is produced. Each integer in the array is less than a modulus, and the array includes the plurality of integers. The array of integers can be used in a lattice-based cryptographic protocol.
29 Citations
30 Claims
-
1. A lattice-based cryptography method comprising:
-
obtaining a first plurality of digits based on pseudorandom data from a pseudorandom number generator, the first plurality of digits representing an integer in a first number system; determining whether to reject the pseudorandom data based on comparing the integer with a second threshold that is based on a second number system, wherein comparing the integer with the second threshold reduces a probability of rejecting the pseudorandom data relative to comparing the integer with a first threshold that is based on the first number system; in response to determining not to reject the pseudorandom data, converting the first plurality of digits to a second plurality of digits, the second plurality of digits representing the integer in the second number system; by operation of a processor, generating a plurality of integers in the first number system based on the second plurality of digits; producing an array of integers each less than a modulus, the array of integers comprising the plurality of integers; and using the array of integers in a lattice-based cryptography protocol executed by computer nodes configured to exchange information over a communication channel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A cryptography method comprising:
-
obtaining pseudorandom data from a pseudorandom number generator, the pseudorandom data comprising bits that represent an integer in a binary number system; determining whether to reject the pseudorandom data based on comparing the integer with a second threshold that is based on a trinary number system, wherein comparing the integer with the second threshold reduces a probability of rejecting the pseudorandom data relative to comparing the integer with a first threshold that is based on the binary number system; in response to determining not to reject the pseudorandom data, converting the bits to trits that represent the integer in the trinary number system; by operation of a processor, using the trits to generate a plurality of integers in the binary number system, wherein each of the plurality of integers is based on a respective one of the trits; producing an array of integers each less than a modulus, the array of integers comprising the plurality of integers; and using the array of integers in a cryptographic protocol executed by computer nodes configured to exchange information over a communication channel. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computing system comprising:
-
a data processing apparatus; a computer-readable medium storing instructions that are operable when executed by the data processing apparatus to perform operations comprising; obtaining a first plurality of digits based on pseudorandom data from a pseudorandom number generator, the first plurality of digits representing an integer in a first number system; determining whether to reject the pseudorandom data based on comparing the integer with a second threshold that is based on a second number system, wherein comparing the integer with the second threshold reduces a probability of rejecting the pseudorandom data relative to comparing the integer with a first threshold that is based on the first number system; in response to determining not to reject the pseudorandom data, converting the first plurality of digits to a second plurality of digits, the second plurality of digits representing the integer in a second number system; generating a plurality of integers in the first number system based on the second plurality of digits; producing an array of integers each less than a modulus, the array of integers comprising the plurality of integers; and using the array of integers in a lattice-based cryptography protocol executed by computer nodes configured to exchange information over a communication channel. - View Dependent Claims (28, 29, 30)
-
Specification