Claims
- 1. A method for computing a variable-input-length pseudorandom function using an n-bit pseudorandom function, which transforms a key and a message to an authentication tag, the method comprising:
generating a sequence of offsets from the key; partitioning the message into a sequence of n-bit message blocks and a message fragment having at most n bits; combining each message block with a corresponding offset to get a corresponding input block; applying the n-bit pseudorandom function to each input block to get a corresponding output block; computing a checksum as a function of at least the output blocks and the final fragment; and computing the authentication tag by applying the n-bit pseudorandom function to the checksum.
- 2. The method of claim 1, wherein generating the sequence of offsets involves:
determining the 1st offset as a function of the key; and determining the ith offset, for each i>1, a function of the first offset and the number i.
- 3. The method of claim 1, wherein generating the sequence of offsets involves:
determining a plurality of basis offsets; determining each offset in the sequence of offsets by combining a given set of basis offsets.
- 4. The method of claim 3, wherein the order that basis offsets are combined to make the ith offset is determined by a Gray code.
- 5. The method of claim 1, wherein generating the sequence of offsets involves:
determining a stride and a first offset from the key; and determining each subsequent offset by combining the prior offset and the stride.
- 6. A method for computing a variable-input-length pseudorandom function that transforms a key and a message to an authentication tag, the method comprising:
generating a sequence of offsets from the key; partitioning the message into a message core and a message fragment; computing a partial checksum as a function of the message core, the sequence of offsets, and the key; computing a final checksum as a function of at least the partial checksum and the message fragment; and computing the authentication tag as a function of the final checksum and the key.
- 7. A method for authenticating messages, using a key, that associates to each message an authentication tag, comprising:
generating a sequence of offsets from the key; partitioning the message into a message core and a message fragment; computing a partial checksum as a function of the message core, the sequence of offsets, and the key; computing a final checksum as a function of at least the partial checksum and the message fragment; computing the authentication tag as a function of the final checksum and the key.
- 8. A method for verifying the authenticity of messages, using a key, wherein a message is presented along with a purported authentication tag, comprising:
generating a sequence of offsets from the key; partitioning the message into a message core and a message fragment; computing a partial checksum as a function of the message core, the sequence of offsets, and the key; computing a final checksum as a function of at least the partial checksum and the message fragment; computing an authentication tag as a function of the final checksum and the key; regarding the message as authentic if the authentication tag equals the purported authentication tag; and regarding the message as inauthentic if the authentication tag differs from the purported authentication tag.
- 9. A method for computing a variable-input-length pseudorandom function that uses a keyed block cipher to produce an authentication tag from a message, comprising:
determining a key variant by applying the keyed block cipher to a constant; computing a sequence of offsets from the key variant; using the keyed block cipher to compute a checksum from the message and the sequence of offsets; and applying the keyed block cipher to the checksum to yield the authentication tag.
- 10. A method for generating a sequence of offsets, to be used for authenticating messages between parties who share a secret key, comprising:
determining a key variant as a function of the secret key; using the key variant to determine a sequence of basis offsets; and determining a sequence of offsets from the sequence of basis offsets, wherein each offset in the sequence of basis offsets is determined by combining certain basis offsets from the sequence of basis offsets.
- 11. The method for generating a sequence of offsets as described in claim 10, wherein the basis offsets are combined in an order determined by a Gray code.
- 12. A method for computing a variable-input-length pseudorandom function that uses a block cipher, keyed by a given key, to produce an authentication tag from a message, the method comprising:
determining a stride value by applying the block cipher to a constant; computing a first offsets using the block cipher; computing each subsequent offset in a sequence of offsets by combining the prior offset and the stride value; and computing the authentication tag using the block cipher, the message, and the sequence of offsets.
- 13. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for computing a variable-input-length pseudorandom function using an n-bit pseudorandom function, which transforms a key and a message to an authentication tag, the method comprising:
generating a sequence of offsets from the key; partitioning the message into a sequence of n-bit message blocks and a message fragment having at most n bits; combining each message block with a corresponding offset to get a corresponding input block; applying the n-bit pseudorandom function to each input block to get a corresponding output block; computing a checksum as a function of at least the output blocks and the final fragment; and computing the authentication tag by applying the n-bit pseudorandom function to the checksum.
- 14. The computer-readable storage medium of claim 13, wherein generating the sequence of offsets involves:
determining the 1st offset as a function of the key; and determining the ith offset, for each i>1, a function of the first offset and the number i.
- 15. The computer-readable storage medium of claim 13, wherein generating the sequence of offsets involves:
determining a plurality of basis offsets; determining each offset in the sequence of offsets by combining a given set of basis offsets.
- 16. The computer-readable storage medium of claim 15, wherein the order that basis offsets are combined to make the ith offset is determined by a Gray code.
- 17. The computer-readable storage medium of claim 13, wherein generating the sequence of offsets involves:
determining a stride and a first offset from the key; and determining each subsequent offset by combining the prior offset and the stride.
- 18. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for computing a variable-input-length pseudorandom function that transforms a key and a message to an authentication tag, the method comprising:
generating a sequence of offsets from the key; partitioning the message into a message core and a message fragment; computing a partial checksum as a function of the message core, the sequence of offsets, and the key; computing a final checksum as a function of at least the partial checksum and the message fragment; and computing the authentication tag as a function of the final checksum and the key.
- 19. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for authenticating messages, using a key, that associates to each message an authentication tag, the method comprising:
generating a sequence of offsets from the key; partitioning the message into a message core and a message fragment; computing a partial checksum as a function of the message core, the sequence of offsets, and the key; computing a final checksum as a function of at least the partial checksum and the message fragment; computing the authentication tag as a function of the final checksum and the key.
- 20. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for verifying the authenticity of messages, using a key, wherein a message is presented along with a purported authentication tag, the method comprising:
generating a sequence of offsets from the key; partitioning the message into a message core and a message fragment; computing a partial checksum as a function of the message core, the sequence of offsets, and the key; computing a final checksum as a function of at least the partial checksum and the message fragment; computing an authentication tag as a function of the final checksum and the key; regarding the message as authentic if the authentication tag equals the purported authentication tag; and regarding the message as inauthentic if the authentication tag differs from the purported authentication tag.
- 21. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for computing a variable-input-length pseudorandom function that uses a keyed block cipher to produce an authentication tag from a message, the method comprising:
determining a key variant by applying the keyed block cipher to a constant; computing a sequence of offsets from the key variant; using the keyed block cipher to compute a checksum from the message and the sequence of offsets; and applying the keyed block cipher to the checksum to yield the authentication tag.
- 22. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for generating a sequence of offsets, to be used for authenticating messages between parties who share a secret key, the method comprising:
determining a key variant as a function of the secret key; using the key variant to determine a sequence of basis offsets; and determining a sequence of offsets from the sequence of basis offsets, wherein each offset in the sequence of basis offsets is determined by combining certain basis offsets from the sequence of basis offsets.
- 23. The computer-readable storage medium for generating a sequence of offsets as described in claim 10, wherein the basis offsets are combined in an order determined by a Gray code.
- 24. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for computing a variable-input-length pseudorandom function that uses a block cipher, keyed by a given key, to produce an authentication tag from a message, the method comprising:
determining a stride value by applying the block cipher to a constant; computing a first offsets using the block cipher; computing each subsequent offset in a sequence of offsets by combining the prior offset and the stride value; and computing the authentication tag using the block cipher, the message, and the sequence of offsets.
- 25. An apparatus that computes a variable-input-length pseudorandom function using an n-bit pseudorandom function, which transforms a key and a message to an authentication tag, the apparatus comprising:
a generating mechanism that is configured to generate a sequence of offsets from the key; a partitioning mechanism that is configured to partition the message into a sequence of n-bit message blocks and a message fragment having at most n bits; a combining mechanism that is configured to combine each message block with a corresponding offset to get a corresponding input block; a pseudorandom function mechanism that is configured to apply the n-bit pseudorandom function to each input block to get a corresponding output block; a checksum mechanism that is configured to compute a checksum as a function of at least the output blocks and the final fragment; and an authentication tag mechanism that is configured to compute the authentication tag by applying the n-bit pseudorandom function to the checksum.
- 26. An apparatus that computes a variable-input-length pseudorandom function that transforms a key and a message to an authentication tag, the apparatus comprising: a generation mechanism that is configured to generate a sequence of offsets from the key;
a partitioning mechanism that is configured to partition the message into a message core and a message fragment; a checksum mechanism that is configured to,
compute a partial checksum as a function of the message core, the sequence of offsets, and the key, and to compute a final checksum as a function of at least the partial checksum and the message fragment; and an authentication tag mechanism that is configured to compute the authentication tag as a function of the final checksum and the key.
- 27. An apparatus that authenticates messages, using a key, that associates to each message an authentication tag, comprising:
a generation mechanism that is configured to generate a sequence of offsets from the key; a partitioning mechanism that is configured to partition the message into a message core and a message fragment; a checksum mechanism that is configured to,
compute a partial checksum as a function of the message core, the sequence of offsets, and the key, and to compute a final checksum as a function of at least the partial checksum and the message fragment; an authentication tag mechanism that is configured to compute the authentication tag as a function of the final checksum and the key.
- 28. An apparatus that computes a variable-input-length pseudorandom function that uses a keyed block cipher to produce an authentication tag from a message, comprising:
a key variant mechanism that is configured to determine a key variant by applying the keyed block cipher to a constant; an offset mechanism that is configured to compute a sequence of offsets from the key variant; a checksum mechanism that is configured to,
use the keyed block cipher to compute a checksum from the message and the sequence of offsets, and to apply the keyed block cipher to the checksum to yield the authentication tag.
- 29. An apparatus that generates a sequence of offsets, to be used for authenticating messages between parties who share a secret key, comprising:
a key variant mechanism that is configured to determine a key variant as a function of the secret key; a basis computing mechanism that is configured to,
use the key variant to determine a sequence of basis offsets, and to determine a sequence of offsets from the sequence of basis offsets, wherein each offset in the sequence of basis offsets is determined by combining certain basis offsets from the sequence of basis offsets.
RELATED APPLICATION
[0001] This application hereby claims priority under 35 U.S.C. section 119 to U.S. Provisional Patent Application No. 60/232,326, filed Sep. 13, 2000, and Provisional Application Serial No. 60/240,471, filed Oct. 12, 2000. The above-referenced Provisional Patent applications are hereby incorporated by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60232326 |
Sep 2000 |
US |
|
60240471 |
Oct 2000 |
US |