2

By "splitting", I mean turning one chunk of information into more than one chunk. The new chunks do not necessarily have to be of a smaller size. I imagine the use of this could be something similar to the nuclear launch protocol, where two people with separate keys must be present.

Unfortunately, this is one of those hard-to-google questions. Google always returns results about splitting a file into smaller pieces for easier file transfer, which is unrelated.

A simple protocol I came up with for this is to XOR the data with random values. For example, to split a plaintext $p$ into 3 chunks, you generate two random values $r_1$ and $r_2$. You then save $r_1$, $r_2$, and $r_1 \oplus r_2 \oplus p$ as your pieces.

Is there a better known algorithm like this?

Daffy
  • 2,389
  • 17
  • 29

1 Answers1

4

What you are describing is called secret sharing schemes.

The scheme you outline is sometime called XOR-sharing (or additive secret sharing more generally). It is a very used scheme as a sub protocol in more advanced cryptographic protocols (such as secure computation protocols). This scheme has perfect security. It is also very fast because it only requires XOR. So from those perspectives it is a good secret sharing scheme.

However, secret sharing schemes comes in many flavors with different properties, so it's not possible to say if there are better schemes. There certainly are more advanced schemes. But whether they are better depends entirely on the application.

For example, a weakness of XOR-sharing is that you need all the pieces of the secret in order to reconstruct the secret. Schemes exists where you can pick a parameter $t$, called the threshold, so that any group of size $t + 1$ pieces is enough to reconstruct the secret. These types of secret sharing are called threshold secret sharing schemes. The most well known scheme of this type is called Shamir secret sharing, which is based on polynomials over finite fields.

Guut Boy
  • 2,877
  • 16
  • 25