IP Library Granted Patent US 9,641,491
Granted Patent B2
US 9,641,491 · App. 14/311,396 · Granted May 2, 2017

Secure memory interface with cumulative authentication

Inventors: Uri Kaluzhny (Beit Shemesh, IL); Nir Tasher (Tel Mond, IL)
Assignee: WINBOND ELECTRONICS CORPORATION
H04L63/0457G06F21/85H04L9/0662H04L9/3247H04L63/0428
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,641,491
App. No.
14/311,396
Granted
May 2, 2017
Kind
B2
Abstract

A method includes generating a first sequence of data words for sending over an interface. A second sequence of signatures is computed and interleaved into the first sequence, so as to produce an interleaved sequence in which each given signature cumulatively signs the data words that are signed by a previous signature in the interleaved sequence and the data words located between the previous signature and the given signature. The interleaved sequence is transmitted over the interface.

Claims (42)

1. A method of encoding data for transmission, comprising:

receiving, by hardware circuitry, a sequence of data words for sending over an interface;

using the circuitry, preparing a first signature that signs the data words up to a first location in the sequence, and preparing a second signature that signs the data words up to a second location in the sequence, later in the sequence than the first location, wherein:

(i) the second signature signs the data words that were signed by the first signature, plus the data words located between the first location and the second location; and

(ii) a probability of detecting alteration of bits within the data words based on the first and second signatures is higher than the probability of detecting the alteration of bits based on the first signature without the second signature;

transmitting the sequence of data words with the first and second signatures interleaved therein over the interface, so as to convey the data words and the first and second signatures to a host; and

receiving the sequence with the first and second signatures from the interface, and progressively authenticating the data words using the first and second signatures by authenticating, using the second signature, the data words that were authenticated by the first signature and the data words located between the first signature and the second signature.

2. The method according to claim 1 , wherein preparing the first and second signatures comprises generating each of the first and second signatures as a respective function of the data words that precede that signature in the sequence.

3. The method according to claim 1 , wherein preparing the first and second signatures comprises generating each of the first and second signatures as a function of a respective number of the data words that increases along the sequence.

4. The method according to claim 1 , wherein preparing the first and second signatures comprises applying a linear feedback shift register (LFSR) to the data words, and applying a non-linear function to an output of the LFSR.

5. The method according to claim 1 , wherein preparing the first and second signatures comprises setting a first subset of bits in a given signature to sign the data words that precede the given signature in the sequence, and deriving a second subset of the bits in the given signature from an error detection code that has been computed over one or more of the data words and stored in the memory.

6. A method of encoding data for transmission, comprising:

receiving, by hardware circuitry, a sequence of data words for sending over an interface;

using the circuitry, preparing a first signature that signs the data words up to a first location in the sequence, and preparing a second signature that signs the data words up to a second location in the sequence, later in the sequence than the first location, wherein:

(i) the second signature signs the data words that were signed by the first signature, plus the data words located between the first location and the second location; and

(ii) a probability of detecting alteration of bits within the data words based on the first and second signatures is higher than the probability of detecting the alteration of bits based on the first signature without the second signature; and

transmitting the sequence of data words with the first and second signatures interleaved therein over the interface, so as to convey the data words and the first and second signatures to a host,

wherein preparing the first and second signatures comprises setting a first subset of bits in a given signature to sign the data words that precede the given signature in the sequence, and deriving a second subset of the bits in the given signature from an error detection code that has been computed over one or more of the data words and stored in the memory, and assigning bit positions in the given signature to the first and second subsets using a cryptographic function.

7. A method of encoding data for transmission, comprising:

receiving, by hardware circuitry, a sequence of data words for sending over an interface;

using the circuitry, preparing a first signature that signs the data words up to a first location in the sequence, and preparing a second signature that signs the data words up to a second location in the sequence, later in the sequence than the first location, wherein:

(i) the second signature signs the data words that were signed by the first signature, plus the data words located between the first location and the second location; and

(ii) a probability of detecting alteration of bits within the data words based on the first and second signatures is higher than the probability of detecting the alteration of bits based on the first signature without the second signature; and

transmitting the sequence of data words with the first and second signatures interleaved therein over the interface, so as to convey the data words and the first and second signatures to a host,

wherein preparing the first and second signatures comprises setting a first subset of bits in a given signature to sign the data words that precede the given signature in the sequence, and deriving a second subset of the bits in the given signature from an error detection code that has been computed over one or more of the data words and stored in the memory; and

receiving the sequence with the first and second signatures from the interface, extracting the first and second subsets of the bits from each of the signatures, determining, using the first subset, the integrity with which the data words were transferred over the interface, and determining, using the second subset, the integrity with which the data words have been stored in the memory.

8. An apparatus, comprising:

a memory;

a hardware-implemented memory authentication unit, which is configured to receive a sequence of data words for sending over an interface, to prepare a first signature that signs the data words up to a first location in the sequence, to prepare a second signature that signs the data words up to a second location in the sequence, later in the sequence than the than the first location, wherein (i) the second signature signs the data words that were signed by the first signature, plus the data words located between the first location and the second location, and (ii) a probability of detecting alteration of bits within the data words based on the first and second signatures is higher than the probability of detecting the alteration of bits based on the first signature without the second signature, and to transmit the sequence of data words with the first and second signatures interleaved therein over the interface, so as to convey the data words and the first and second signatures for authentication over the interface; and

a host, configured to receive the sequence with the first and second signatures from the interface, to progressively authenticate the data words using the first and second signatures by authenticating, using the second signature, the data words that were authenticated by the first signature and the data words located between the first signature and the second signature.

9. The apparatus according to claim 8 , wherein the memory authentication unit is configured to generate each of the first and second signatures as a respective function of the data words that precede that signature in the sequence.

10. The apparatus according to claim 8 , wherein the memory authentication unit is configured to generate each of the first and second signatures as a function of a respective number of the data words that increases along the sequence.

11. The apparatus according to claim 8 , wherein the memory authentication unit is configured to sign the data words by applying a linear feedback shift register (LFSR) to the data words and applying a non-linear function to an output of the LFSR.

12. The apparatus according to claim 8 , wherein the memory authentication unit is configured to set a first subset of bits in a given signature to sign the data words that precede the given signature in the sequence, and to derive a second subset of the bits in the given signature from an error detection code that has been computed over one or more of the data words and stored in the memory.

13. An apparatus, comprising:

a memory; and

a hardware-implemented memory authentication unit, which is configured to receive a sequence of data words for sending over an interface, to prepare a first signature that signs the data words up to a first location in the sequence, to prepare a second signature that signs the data words up to a second location in the sequence, later in the sequence than the than the first location, wherein (i) the second signature signs the data words that were signed by the first signature, plus the data words located between the first location and the second location, and (ii) a probability of detecting alteration of bits within the data words based on the first and second signatures is higher than the probability of detecting the alteration of bits based on the first signature without the second signature, and to transmit the sequence of data words with the first and second signatures interleaved therein over the interface, so as to convey the data words and the first and second signatures for authentication over the interface,

wherein the memory authentication unit is configured to set a first subset of bits in a given signature to sign the data words that precede the given signature in the sequence, to derive a second subset of the bits in the given signature from an error detection code that has been computed over one or more of the data words and stored in the memory, and to assign bit positions in the given signature between the first and second subsets using a cryptographic function.

14. An apparatus, comprising:

a memory;

a hardware-implemented memory authentication unit, which is configured to receive a sequence of data words for sending over an interface, to prepare a first signature that signs the data words up to a first location in the sequence, to prepare a second signature that signs the data words up to a second location in the sequence, later in the sequence than the than the first location, wherein (i) the second signature signs the data words that were signed by the first signature, plus the data words located between the first location and the second location, and (ii) a probability of detecting alteration of bits within the data words based on the first and second signatures is higher than the probability of detecting the alteration of bits based on the first signature without the second signature, and to transmit the sequence of data words with the first and second signatures interleaved therein over the interface, so as to convey the data words and the first and second signatures for authentication over the interface, wherein the memory authentication unit is further configured to set a first subset of bits in a given signature to sign the data words that precede the given signature in the sequence, and to derive a second subset of the bits in the given signature from an error detection code that has been computed over one or more of the data words and stored in the memory; and

a host configured to receive the sequence with the first and second signatures from the interface, to extract the first and second subsets of the bits from each of the signatures, to determine, using the first subset, the integrity with which the data words were transferred over the interface, and to determine, using the second subset, the integrity with which the data words have been stored in the memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2014
From: KALUZHNY, URI; TASHER, NIR
To: WINBOND ELECTRONICS CORPORATION
Reel/Frame 033154/0351 →
Continuity (2)
Provisional Application 61880932 · Sep 22, 2013
Related Publication 20150089234A1 · Mar 26, 2015