Advertisement
easklund

HA3B1

Dec 5th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. def checkBinding(x, invertedVote, trunSize):
  2. for i in range(2**16):
  3. i = intToByte(i)
  4. newX = commitment(invertedVote, i, trunSize)
  5. if newX == x :
  6. return True
  7. return False
  8.  
  9. def binding_property(size, trunSize):
  10. san = 0
  11. for j in range(size):
  12. myX = commitment(b'\0',generateK(), trunSize)
  13. if checkBinding(myX, b'\1', trunSize):
  14. san += 1
  15. return (san/size) * 100
  16.  
  17. def checkConcealing(x, vote, trunSize):
  18. summa = 0
  19. for i in range(2**16):
  20. i = intToByte(i)
  21. newX = commitment(vote, i, trunSize)
  22. if newX == x :
  23. summa += 1
  24. return summa
  25.  
  26.  
  27. def FindOutVote(x, turnSize):
  28. nbrOfOne = checkConcealing(x, b'\1', turnSize)
  29. nbrOfZero = checkConcealing(x, b'\0', turnSize)
  30. if nbrOfOne > nbrOfZero :
  31. return 1
  32. else:
  33. return 0
  34.  
  35. def conceling_property(size, turnSize, MyVote):
  36. nbrOfVin = 0
  37. for i in range(size):
  38. k = generateK()
  39. commit = commitment(MyVote, k, turnSize)
  40. what = FindOutVote(commit, turnSize)
  41. if what == 1:
  42. opponentVote = b'\0'
  43. else:
  44. opponentVote = b'\1'
  45. if MyVote != opponentVote:
  46. nbrOfVin += 1
  47. return (nbrOfVin/size) *100
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement