Election-Tech-Initiative / Election-Tech-Initiative/electionguard

🐞 SchnorrProof challenge specification and implementation do not match

Open
#253 1 comment 0 reactions 1 assignee Claimed by @benaloh View on GitHub
bug question
Dominant language
Python
Stars
872
Forks
131
PR merge metrics
No merged PRs in 30d

Description

### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

Specification 1.0 for SchnorrProof (p 10, p 27) has the challenge as

`c i,j = H(Q, K i,j , h i,j )
`

But implementation **make_schnorr_proof** in schnorr.py. line 89 has

`c = hash_elems(k, h)
`

This was discussed in

https://github.com/microsoft/electionguard-python/issues/278

and it was decided to leave out the Q.

### Expected Behavior

The specification should be amended after reviewing the decision to leave out the Q.

### Steps To Reproduce

_No response_

### Environment

```markdown
- OS:
```

### Anything else?

The 2.0 document being circulated "_Proofs in ElectionGuard– changes for version 2.0_" section 2 should also be amended.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.