trailofbits / trailofbits/break-golf
verify: spoc128-ds
Nobody has claimed this yet.
- Dominant language
- Lean
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Challenge: spoc128-ds
Budget (queries): 3
Advantage: 1/1
Claimed score: 1.58 bits
Notes: none
Solve.lean
/-
A submission that verifies and wins nothing.
The null adversary: ask no questions, always answer "ideal". Its signed advantage
is exactly 0, so `Wins budget 0` is *true* and provable, the file elaborates
cleanly, and `#print axioms` reports only propext, Classical.choice, Quot.sound.
It is still worth nothing. score = log2(budget / advantage^e) is infinite at
advantage 0: an attack that refutes 0 bits of security refutes nothing. The board
rejects the submission form for it (`non_positive`) rather than the Lean.
Use this to test the honest-but-worthless path: a real proof of a real statement
that is not a break.
-/
import Golf.Challenges.SpoC128DS.Challenge
namespace Solution.SpoC128DS
open RandomSystems.CR18
open RandomSystems.Golf.Instances.SpoC128DS
def solution : Challenge.SpoC128DS.Solution where
strategy := fun _ _ => none
verdict := fun _ => false
wins := by
have h : Challenge.SpoC128DS.score.advantage = 0 := by
simp [Golf.Score.advantage, Challenge.SpoC128DS.score]
rw [h]
exact Golf.Attack.wins_zero_of_reject _ _ (fun _ _ _ => rfl)
end Solution.SpoC128DS
Opened from the break golf board. The verifier builds its own copy of
Challenge.lean; the declarations above are checked against the types pinned
there, then #print axioms is compared with the challenge's permitted list.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Solve.lean submission and the verifier's generated Challenge.lean copy. Check that the declarations match the pinned types, that the proof elaborates, and that #print axioms stays within the permitted list; completion is acceptance by the break golf board.
Written by the indexing model from the issue text.
Assessment
- Domain
- cryptography
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100