Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I separate an encryption key into parts?

I have a 128 bit encryption key that I would like to break up into three parts that when XOR'ed together reproduce the key.

How do I do this?

like image 700
crawfish Avatar asked Dec 26 '22 21:12

crawfish


1 Answers

Pick two other 128 bit values at random (random_1 and random_2), then work out the equations to see how it works:

key ^ random_1 = xor_1

Now split xor_1 the same way:

xor_1 ^ random_2 = xor_2

Flipping that equation around, we get:

xor_1 = xor_2 ^ random_2

Now substitute back into the first equation:

key = random_1 ^ xor_2 ^ random_2

So your code will just do xor = key ^ random_1 ^ random_2 and you distribute everything but the key.

like image 137
Qsario Avatar answered Dec 31 '22 13:12

Qsario