IP Library Granted Patent US 11,870,780
Granted Patent B2
US 11,870,780 · App. 18/181,432 · Granted Jan 9, 2024

Address validation using signatures

Inventor: Benjamin C. Serebrin (Sunnyvale, CA)
Assignee: Google LLC
H04L63/0876G06F12/1081G06F12/1408G06F12/1475G06F21/79H04L9/3247H04L63/062H04L63/164G06F2212/1052
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 11,870,780
App. No.
18/181,432
Granted
Jan 9, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for generating signed addresses. One of the methods includes receiving, by a component from a device, a plurality of first requests, each first request for a physical address and including a virtual address, determining, by the component, a first physical address using the virtual address, generating a first signature for the first physical address, and providing, to the device, a response that includes the first signature, receiving, from the device, a plurality of second requests, each second request for access to a second physical address and including a second signature, determining, by the component for each of the plurality of second requests, whether the second physical address is valid using the second signature, and for each second request for which the second physical address is determined to be valid, servicing the corresponding second request.

Claims (52)

1. A computer-implemented method comprising:

determining, by a memory management unit, in response to an initial turn on of the memory management unit, a memory size of a memory managed by the memory management unit;

determining, based on the memory size, a first length, a second length, and a third length, wherein:

the first length defines an address field of the first length, and the address field references a memory location in the memory;

the second length is less than the first length and defines a length of address data in the address field, wherein the second length is selected as a number of bits required to address each memory location in the memory; and

the third length is less than the first length, the first length being a sum of the second length and the third length, the third length being the length of a signature for verifying access to an address;

the determination of the first length, the second length, and the third length are based on i) a memory size of the memory and ii) a probability that a device may successfully determines the signature on a first attempt to guess the signature; and

processing requests for data stored in a memory location of the memory using requests of the first length that include address data of the second length and a signature of the third length.

2. The computer-implemented method of claim 1 , wherein the probability is proportional to 1/2 N , where N is equal to the third length.

3. The computer-implemented method of claim 1 , further comprising:

receiving, by the memory management unit and from a device, a request i) for data stored in a memory location in the memory, the request including data in an address field of the first length and that references the memory location;

extracting, from the data in the address field, address data that has the second length;

extracting, from the data in the address field, a first signature that has the third length;

generating, using only the address data that has the second length, a second signature;

determining whether the first signature is the same as the second signature; and

in response to determining that the first signature is the same as the second signature, providing, by the memory management unit and to the device, data from the memory location.

4. The computer-implemented method of claim 3 , further comprising:

decrypting the address data after extracting the address data from the data in the address field, wherein generating the second signature comprises generating, using the decrypted address data, the second signature.

5. The computer-implemented method of claim 3 , further comprising:

in response to not determining that the first signature is the same as the second signature, not providing data from the memory location.

6. The computer-implemented method of claim 2 , wherein extracting the first signature comprises extracting leading data from the data in the address field.

7. A system comprising:

a data processing apparatus; and

a non-transitory computer readable storage medium in data communication with the data processing apparatus and storing instructions executable by the data processing apparatus and upon such execution cause the data processing apparatus to perform operations comprising:

determining, by a memory management unit, in response to an initial turn on of the memory management unit, a memory size of a memory managed by the memory management unit;

determining, based on the memory size, a first length, a second length, and a third length, wherein:

the first length defines an address field of the first length, and the address field references a memory location in the memory;

the second length is less than the first length and defines a length of address data in the address field, wherein the second length is selected as the number of bits required to address each memory location in the memory; and

the third length is less than the first length, the first length being a sum of the second length and the third length, the third length being the length of a signature for verifying access to an address;

the determination of the first length, the second length, and the third length are based on i) a memory size of the memory and ii) a probability that a device may successfully determine the signature on a first attempt to guess the signature; and

processing requests for data stored in a memory location of the memory using the first using a requests of the first length that include address data of the second length and a signature of the third length.

8. The system of claim 7 , wherein the probability is proportional to 1/2 N , where N is equal to the third length.

9. The system of claim 7 , further comprising:

receiving, by the memory management unit and from a device, a request i) for data stored in a memory location in the memory, the request including data in an address field of the first length and that references the memory location;

extracting, from the data in the address field, address data that has the second length;

extracting, from the data in the address field, a first signature that has the third length;

generating, using only the address data that has the second length, a second signature;

determining whether the first signature is the same as the second signature; and

in response to determining that the first signature is the same as the second signature, providing, by the memory management unit and to the device, data from the memory location.

10. The system of claim 9 , further comprising:

decrypting the address data after extracting the address data from the data in the address field, wherein generating the second signature comprises generating, using the decrypted address data, the second signature.

11. The system of claim 10 , further comprising:

in response to not determining that the first signature is the same as the second signature, not providing data from the memory location.

12. The system of claim 9 , wherein extracting the first signature comprises extracting leading data from the data in the address field.

13. A non-transitory computer readable storage medium storing instructions executable by a data processing apparatus and upon such execution cause the data processing apparatus to perform operations comprising:

determining, by a memory management unit, in response to an initial turn on of the memory management unit, a memory size of a memory managed by the memory management unit;

determining, based on the memory size, a first length, a second length, and a third length, wherein:

the first length defines an address field of the first length, and the address field references a memory location in the memory;

the second length is less than the first length and defines a length of address data in the address field, wherein the second length is selected as a number of bits required to address each memory location in the memory; and

the third length is less than the first length, the first length being a sum of the second length and the third length, the third length being the length of a signature for verifying access to an address;

the determination of the first length, the second length, and the third length are based on i) a memory size of the memory and ii) a probability that a device successfully determines the signature on a first attempt to guess the signature; and

processing requests for data stored in a memory location of the memory using requests of the first length that include address data of the second length and a signature of the third length.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2023
From: SEREBRIN, BENJAMIN C.
To: GOOGLE INC.
Reel/Frame 063491/0092 →
ENTITY CONVERSION Recorded May 1, 2023
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 063500/0572 →
Continuity (8)
Continuation 17572066 · Jan 10, 2022
Continuation 16869947 · May 8, 2020
Continuation 16402561 · May 3, 2019
Continuation 16031525 · Jul 10, 2018
Continuation 15661632 · Jul 27, 2017
Continuation 14867250 · Sep 28, 2015
Provisional Application 62164288 · May 20, 2015
Related Publication 20230216848A1 · Jul 6, 2023