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 the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.