Methods and apparatus for efficiently implementing a distributed database within a network
First Claim
1. An apparatus, comprising:
- a memory associated with an instance of a distributed database at a first compute device configured to be included within a plurality of compute devices that implement the distributed database via a network operatively coupled to the plurality of compute devices; and
a processor operatively coupled to the memory, and configured to;
select an anonymous communication path associated with;
(a) a second compute device from the plurality of compute devices that implement the distributed database, and (b) a set of compute device identifiers, the anonymous communication path defined by a sequence of blinded public keys, each blinded public key from the sequence of blinded public keys associated with a pseudonym of a compute device from a set of compute devices that implement the anonymous communication path;
generate an encrypted message encrypted with a first blinded public key included in the sequence of blinded public keys, the first blinded public key associated with the second compute device, the first blinded public key being defined as a pair (B′
, H′
) based on a public key defined as a pair (B, H) and a random value (R), the pair (B′
, H′
) being defined as (B{circumflex over (
)}R, H{circumflex over (
)}R);
generate an encrypted data packet including the encrypted message and a compute device identifier from the set of compute device identifiers, the compute device identifier associated with the second compute device, the encrypted data packet encrypted with a second blinded public key from the sequence of blinded public keys; and
send the encrypted data packet to a third compute device from the set of compute devices that implement the anonymous communication path.
2 Assignments
0 Petitions
Accused Products
Abstract
An apparatus includes a processor and a memory operatively coupled to the processor and associated with an instance of a distributed database at a first compute device. The processor is configured to select an anonymous communication path. Each blinded public key from a sequence of blinded public keys associated with the anonymous communication path is associated with a pseudonym of a compute device from a set of compute devices that implement the anonymous communication path. The processor is configured to generate an encrypted message encrypted with a first blinded public key. The processor is configured to generate an encrypted data packet including the encrypted message and a compute device identifier associated with a second compute device. The encrypted data packet is encrypted with a second blinded public key. The processor is configured to send the encrypted data packet to a third compute device.
-
Citations
21 Claims
-
1. An apparatus, comprising:
-
a memory associated with an instance of a distributed database at a first compute device configured to be included within a plurality of compute devices that implement the distributed database via a network operatively coupled to the plurality of compute devices; and a processor operatively coupled to the memory, and configured to; select an anonymous communication path associated with;
(a) a second compute device from the plurality of compute devices that implement the distributed database, and (b) a set of compute device identifiers, the anonymous communication path defined by a sequence of blinded public keys, each blinded public key from the sequence of blinded public keys associated with a pseudonym of a compute device from a set of compute devices that implement the anonymous communication path;generate an encrypted message encrypted with a first blinded public key included in the sequence of blinded public keys, the first blinded public key associated with the second compute device, the first blinded public key being defined as a pair (B′
, H′
) based on a public key defined as a pair (B, H) and a random value (R), the pair (B′
, H′
) being defined as (B{circumflex over (
)}R, H{circumflex over (
)}R);generate an encrypted data packet including the encrypted message and a compute device identifier from the set of compute device identifiers, the compute device identifier associated with the second compute device, the encrypted data packet encrypted with a second blinded public key from the sequence of blinded public keys; and send the encrypted data packet to a third compute device from the set of compute devices that implement the anonymous communication path. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory processor-readable medium comprising code which, when executed by a processor, causes the processor to:
-
select, at a first compute device, a first random value (R1) from a predefined set of values (G) that is an algebraic group such that R1 is a generator for G; select a second random value (R2) from the predefined set of values (G); define a public key as a pair (B, H) based on the first random value (R1) and the second random value (R2), the pair (B, H) being defined as (R1, R1{circumflex over (
)}R2);send the public key (B, H) such that a second compute device securely provides a message (M) to the first compute device by; selecting a third random value (R3) from the predefined set of values (G); encrypting the message (M) using (1) a blinded public key (B′
, H′
) defined based on the public key (B, H) and (2) the third random value (R3), to define an encrypted ciphertext as (X, Y)=(B′
{circumflex over (
)}R3, M*H′
{circumflex over (
)}R3); andsending the encrypted ciphertext (X, Y) to the first compute device; receive the encrypted ciphertext (X, Y) from the second compute device; and decrypt the encrypted ciphertext (X, Y) to identify the message (M) using the second random value (R2). - View Dependent Claims (14, 15, 16, 21)
-
-
17. A non-transitory processor-readable medium comprising code which, when executed by a processor, causes the processor to:
-
define an anonymous communication path with a sequence of blinded public keys for a set of compute devices from a plurality of compute devices that implement a distributed database, the set of compute devices define the anonymous communication path, each blinded public key from the sequence of blinded public keys is associated with a pseudonym of a different compute device from the plurality of compute devices that implement the distributed database; generate a set of compute device identifiers including (1) an unencrypted compute device identifier identifying a compute device from the plurality of compute devices and (2) a sequence of encrypted compute device identifiers, each encrypted compute device identifier from the sequence of encrypted compute device identifiers encrypted with a different blinded public key from the sequence of blinded public keys; provide the sequence of blinded public keys and the set of compute device identifiers to at least one compute device from the plurality of compute devices such that the at least one compute device can define a message to the processor for sending via the anonymous communication path; receive, via the anonymous communication path, the message encrypted with a blinded public key from the sequence of blinded public keys; and decrypt the message with a private key associated with the blinded public key from the sequence of blinded public keys. - View Dependent Claims (18, 19, 20)
-
Specification