How to do it…

  1. Import the random library and select a large prime number, P:
import randomP = 67280421310721
  1. 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)
  1. Encrypt a numerical variable:
x = 17share_a, share_b, share_c = encrypt(x)print(share_a, share_b, share_c)16821756678516 13110264723730 37348399908492
  1. 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
  1. Decrypt the encrypted variable x:
decrypt(share_a, share_b, ...

Get Machine Learning for Cybersecurity Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.