cryptovoting/shuffle-sum

Implement `CandidateOrder` -> `First Preference` Conversion

Closed this issue · 2 comments

Protocol 2 from ShuffleSum paper

Added arguments for the private key and the public key and implemented the method.

Still needs shuffling logic.

RE: Shuffling Logic -- the paper describes shuffling as:

We assume we have a verifiable shuffle protocol that can
shuffle arbitrary encrypted tuples; given a table consisting of
encrypted values, the shuffle protocol outputs a new table
created from the original by rerandomizing the encrypted
values and randomly permuting the columns. We refer to this
operation as “shuffling table columns”.

Therefore, I would assume that anything that picks a random permutation of the columns would make a good shuffle routine. Ideally, we should probably make sure that the source of randomness is as secure as possible. Perhaps we can implement it as a general method in the parent class Ballot(ABC)?