# US 2019/0377899 A1 · Methods, systems, and media for storing and retrieving data from distributed vaults

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0377899 A1
- Document ID: US20190377899A1
- Status: Published application
- Kind: A1
- Application number: 16/047,433
- Filed: 2018-07-27
- Published: 2019-12-12
- Earliest claimed: 2018-06-12
- Assignees: McAfee, Inc.
- Applicants: McAfee, LLC
- Inventors: Martin Stecher
- Web page: https://patentgrep.com/patent/US20190377899A1

## CPC

- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- G06F 21/60: Protecting data
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/62: Protecting access to data via a platform, e.g. using keys or access control rules
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 9/085: {Secret sharing or secret splitting, e.g. threshold schemes}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- H04L 63/104: {Grouping of entities}
- H04L 63/123: {received data contents, e.g. message integrity}
- H04W 12/068: {using credential vaults, e.g. password manager applications or one time password [OTP] applications}
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Methods, systems, and media for storing and retrieving data from distributed vaults are provided. In some embodiments, a method for storing and retrieving data from distributed vaults is provided, the method comprising: generating, by a first user device, a plurality of pieces of a data item, wherein a count N of the plurality of pieces equals a count of vault devices in a group of vault devices, wherein the data item can be reconstructed from a subset of the plurality of pieces, and wherein the data item corresponds to a key to access secure content; for each piece of the data item, transmitting the piece of the data item to a unique vault device; requesting, by a second user device, the subset of the plurality of pieces; generating the data item using the subset of the plurality of pieces; and using the data item to access the secure content.

## Claims

### Claim 1

A method for storing and retrieving data from distributed vaults, comprising:
generating, by a first user device associated with a first user, a plurality of pieces of a data item, wherein a count N of the plurality of pieces equals a count of vault devices in a group of vault devices, wherein the data item can be reconstructed from a subset of the plurality of pieces having a count M that is less than N, and wherein the data item corresponds to a key to access secure content;
for each piece of the data item of the plurality of pieces, transmitting the piece of the data item to a unique, different vault device in the group of vault devices;
recording a transfer of ownership of the data item from the first user to a second user;
requesting, by a second user device associated with the second user, the subset of the plurality of pieces of the data item from a corresponding subset of the group of vault devices;
generating, by the second user device, the data item using the subset of the plurality of pieces of the data item; and
using the data item to access the secure content by the second user device.

### Claim 2 (depends on 1)

The method of claim 1, wherein indications that each piece of the plurality of pieces of the data item has been stored by the vault devices in the group of vault devices are stored in a blockchain.

### Claim 3 (depends on 2)

The method of claim 2, wherein the blockchain is updated in response to the second user device retrieving the subset of the plurality of pieces of the data item.

### Claim 4 (depends on 3)

The method of claim 3, further comprising receiving, by the first user device, an indication that the second user device has retrieved the subset of the plurality of pieces of the data item from the corresponding subset of the group of vault devices.

### Claim 5 (depends on 1)

The method of claim 1, wherein generating the plurality of pieces of the data item comprises converting the data item into a bitstream comprised of a plurality of bits, wherein each bit in the plurality of bits is assigned to one piece of the plurality of pieces of the data item based on a position of the bit in the plurality of bits.

### Claim 6 (depends on 5)

The method of claim 5, wherein converting the data item into the bitstream comprises converting the data item into the bitstream using a predetermined numerical base, and wherein the count N of the plurality of pieces is one more than the predetermined numerical base, and wherein the predetermined numerical base is greater than two.

### Claim 7 (depends on 6)

The method of claim 6, wherein a first piece of the plurality of pieces of the data item corresponds to an indication of a parity of remaining pieces of the plurality of pieces of the data item.

### Claim 8 (depends on 1)

The method of claim 1, wherein generating the plurality of pieces of the data item comprises:
dividing the data item into a series of 4-bit nibbles; and
for a first 4-bit nibble of the series of 4-bit nibbles, assigning each piece of the plurality of pieces of the data item a 4-bit nibble value that includes at least two of: a first two bits of the first 4-bit nibble, a second two bits of the first 4-bit nibble, a bit complement of the first two bits of the first 4-bit nibble, and a bit complement of the second two bits of the first 4-bit nibble, wherein each piece of the plurality of pieces of the data item is assigned a different 4-bit nibble value.

### Claim 9

A system for storing and retrieving data from distributed vaults, the system comprising:
a first user device, comprising:
a first memory; and
a first hardware processor coupled to the first memory, wherein the first hardware processor is configured to:
generate, by the first user device associated with a first user, a plurality of pieces of a data item, wherein a count N of the plurality of pieces equals a count of vault devices in a group of vault devices, wherein the data item can be reconstructed from a subset of the plurality of pieces having a count M that is less than N, and wherein the data item corresponds to a key to access secure content;
for each piece of the data item of the plurality of pieces, transmit the piece of the data item to a unique, different vault device in the group of vault devices;
record a transfer of ownership of the data item from the first user to a second user; and
a second user device, comprising:
a second memory; and
a second hardware processor coupled to the second memory, wherein the second hardware processor is configured to:
request, by the second user device associated with the second user, the subset of the plurality of pieces of the data item from a corresponding subset of the group of vault devices;
generate, by the second user device, the data item using the subset of the plurality of pieces of the data item; and
use the data item to access the secure content by the second user device.

### Claim 10 (depends on 9)

The system of claim 9, wherein indications that each piece of the plurality of pieces of the data item has been stored by the vault devices in the group of vault devices are stored in a blockchain.

### Claim 11 (depends on 10)

The system of claim 10, wherein the blockchain is updated in response to the second user device retrieving the subset of the plurality of pieces of the data item.

### Claim 12 (depends on 11)

The system of claim 11, wherein the first hardware processor is further configured to receive, by the first user device, an indication that the second user device has retrieved the subset of the plurality of pieces of the data item from the corresponding subset of the group of vault devices.

### Claim 13 (depends on 9)

The system of claim 9, wherein generating the plurality of pieces of the data item comprises converting the data item into a bitstream comprised of a plurality of bits, wherein each bit in the plurality of bits is assigned to one piece of the plurality of pieces of the data item based on a position of the bit in the plurality of bits.

### Claim 14 (depends on 13)

The system of claim 13, wherein converting the data item into the bitstream comprises converting the data item into the bitstream using a predetermined numerical base, and wherein the count N of the plurality of pieces is one more than the predetermined numerical base, and wherein the predetermined numerical base is greater than two.

### Claim 15 (depends on 14)

The system of claim 14, wherein a first piece of the plurality of pieces of the data item corresponds to an indication of a parity of remaining pieces of the plurality of pieces of the data item.

### Claim 16 (depends on 9)

The system of claim 9, wherein generating the plurality of pieces of the data item comprises:
dividing the data item into a series of 4-bit nibbles; and
for a first 4-bit nibble of the series of 4-bit nibbles, assigning each piece of the plurality of pieces of the data item a 4-bit nibble value that includes at least two of: a first two bits of the first 4-bit nibble, a second two bits of the first 4-bit nibble, a bit complement of the first two bits of the first 4-bit nibble, and a bit complement of the second two bits of the first 4-bit nibble, wherein each piece of the plurality of pieces of the data item is assigned a different 4-bit nibble value.

### Claim 17

A non-transitory computer-readable medium containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for storing and retrieving data from distributed vaults, the method comprising:
generating, by a first user device associated with a first user, a plurality of pieces of a data item, wherein a count N of the plurality of pieces equals a count of vault devices in a group of vault devices, wherein the data item can be reconstructed from a subset of the plurality of pieces having a count M that is less than N, and wherein the data item corresponds to a key to access secure content;
for each piece of the data item of the plurality of pieces, transmitting the piece of the data item to a unique, different vault device in the group of vault devices;
recording a transfer of ownership of the data item from the first user to a second user;
requesting, by a second user device associated with the second user, the subset of the plurality of pieces of the data item from a corresponding subset of the group of vault devices;
generating, by the second user device, the data item using the subset of the plurality of pieces of the data item; and
using the data item to access the secure content by the second user device.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein indications that each piece of the plurality of pieces of the data item has been stored by the vault devices in the group of vault devices are stored in a blockchain.

### Claim 19 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the blockchain is updated in response to the second user device retrieving the subset of the plurality of pieces of the data item.

### Claim 20 (depends on 19)

The non-transitory computer-readable medium of claim 19, wherein the method further comprises receiving, by the first user device, an indication that the second user device has retrieved the subset of the plurality of pieces of the data item from the corresponding subset of the group of vault devices.

### Claim 21 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein generating the plurality of pieces of the data item comprises converting the data item into a bitstream comprised of a plurality of bits, wherein each bit in the plurality of bits is assigned to one piece of the plurality of pieces of the data item based on a position of the bit in the plurality of bits.

### Claim 22 (depends on 21)

The non-transitory computer-readable medium of claim 21, wherein converting the data item into the bitstream comprises converting the data item into the bitstream using a predetermined numerical base, and wherein the count N of the plurality of pieces is one more than the predetermined numerical base, and wherein the predetermined numerical base is greater than two.

### Claim 23 (depends on 22)

The non-transitory computer-readable medium of claim 22, wherein a first piece of the plurality of pieces of the data item corresponds to an indication of a parity of remaining pieces of the plurality of pieces of the data item.

### Claim 24 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein generating the plurality of pieces of the data item comprises:
dividing the data item into a series of 4-bit nibbles; and
for a first 4-bit nibble of the series of 4-bit nibbles, assigning each piece of the plurality of pieces of the data item a 4-bit nibble value that includes at least two of: a first two bits of the first 4-bit nibble, a second two bits of the first 4-bit nibble, a bit complement of the first two bits of the first 4-bit nibble, and a bit complement of the second two bits of the first 4-bit nibble, wherein each piece of the plurality of pieces of the data item is assigned a different 4-bit nibble value.
