- Import the random library and select a large prime number, P:
import randomP = 67280421310721
- Define an encryption function for three parties:
def encrypt(x): """Encrypts an integer between 3 partires.""" share_a = random.randint(0, P) share_b = random.randint(0, P) share_c = (x - share_a - share_b) % P return (share_a, share_b, share_c)
- Encrypt a numerical variable:
x = 17share_a, share_b, share_c = encrypt(x)print(share_a, share_b, share_c)16821756678516 13110264723730 37348399908492
- Define a function to decrypt, given the three shares:
def decrypt(share_a, share_b, share_c): """Decrypts the integer from 3 shares.""" return (share_a + share_b + share_c) % P
- Decrypt the encrypted variable x:
decrypt(share_a, share_b, ...