Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preencrypted Ballot not complete #56

Open
JohnLCaron opened this issue Apr 12, 2024 · 3 comments
Open

Preencrypted Ballot not complete #56

JohnLCaron opened this issue Apr 12, 2024 · 3 comments

Comments

@JohnLCaron
Copy link
Owner

The Preencryption info in the EncryptedBallot serialization is our own.

The whole thing is not well tested.

@JohnLCaron
Copy link
Owner Author

JohnLCaron commented Apr 17, 2024

Section 4.1.4 Short Codes

"In any instantiation of pre-encrypted ballots, an additional hash trimming function Ω must be
provided. The hash trimming function takes as its input a selection hash, and its output is a short
code....Different vendors or jurisdictions might
choose to distinguish themselves by using their own preferred short code formats, so the details of
the short code format are intentionally left open. However, Ω must be completely specified in the
election manifest so that a verifier can match its functionality."

The hash trimming function is passed into the PreEncryptor, however there is no current way for the verifier to know what it it.

class PreEncryptor(
val group: GroupContext,
val manifest: ManifestIF,
val publicKey: ElGamalPublicKey,
val extendedBaseHash: UInt256,
val sigma : (UInt256) -> String, // hash trimming function Ω
)

We have implemented only a single hash trimming function in out tests.

@JohnLCaron JohnLCaron changed the title PreencryptedData not complete Preencrypted Ballot not complete Apr 17, 2024
@JohnLCaron
Copy link
Owner Author

Section 4.2.1

"If labels for null votes are not included within the manifest file, the labels “null1”, “null2”, ... should be used within each contest as needed."

Not done, seems unneeded.

@JohnLCaron
Copy link
Owner Author

  • TODO : uncast (implicitly or explicitly challenged) aka CHALLENGED
  • "For each uncast (implicitly or explicitly challenged) ballot, the recording tool returns the primary
  • nonce that enables the encryptions to be opened and checked."
  • "For an uncast ballot, the wrapper computes the short codes for all possible selections and posts
  • in the election record the full set of pre-encryption vectors, selection hashes, and short codes for
  • each possible selection."
  • "The decryptions of all pre-encryptions correspond to the plaintext values indicated in the
  • election manifest."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant