beaver.sage 714 B

12345678910111213141516171819
  1. load('share.sage')
  2. import random
  3. class Source(object):
  4. def __init__(self, p):
  5. self.a = random.randint(0,p)
  6. self.b = random.randint(0,p)
  7. self.c = self.a*self.b
  8. self.left_a = random.randint(0,self.a)
  9. self.right_a = self.a - self.left_a
  10. self.left_b = random.randint(0,self.b)
  11. self.right_b = self.b - self.left_b
  12. self.left_c = random.randint(0,self.c)
  13. self.right_c = self.c - self.left_c
  14. def triplet(self, party_id):
  15. triplet = [self.left_a, self.left_b, self.left_c] if party_id==0 else [self.right_a, self.right_b, self.right_c]
  16. return [AuthenticatedShare(share) for share in triplet]