Show simple item record

dc.contributor.authorEvans, Ross
dc.date.accessioned2024-04-15 19:34:34 (GMT)
dc.date.available2024-04-15 19:34:34 (GMT)
dc.date.issued2024-04-15
dc.date.submitted2024-04-11
dc.identifier.urihttp://hdl.handle.net/10012/20441
dc.description.abstractCryptographic proofs allow researchers to provide theoretical guarantees on the security that their constructions provide. A proof of security can completely eliminate a class of attacks by potential adversaries. Human fallibility, however, means that even a proof reviewed by experts may still hide flaws or outright errors. Proof assistants are software tools built for the purpose of formally verifying each step in a proof, and as such have the potential to prevent erroneous proofs from being published and insecure constructions from being implemented. Unfortunately, existing tooling for verifying cryptographic proofs has found limited adoption in the cryptographic community, in part due to concerns with ease of use. This thesis presents ProofFrog: a new tool for verifying cryptographic game-hopping proofs. ProofFrog is designed with the average cryptographer in mind, using an imperative syntax for specifying games and a syntax for proofs that closely models pen-and-paper arguments. As opposed to other proof assistant tools which largely operate by manipulating logical formulae, ProofFrog manipulates abstract syntax trees (ASTs) into a canonical form to establish indistinguishable or equivalent behaviour for pairs of games in a user-provided sequence. We detail the domain-specific language developed for use with the ProofFrog proof engine as well as present a sequence of worked examples that demonstrate ProofFrog’s capacity for verifying proofs and the exact transformations it applies to canonicalize ASTs. A tool like ProofFrog that prioritizes ease of use can lower the barrier of entry to using computer-verified proofs and aid in catching insecure constructions before they are made public.en
dc.language.isoenen
dc.publisherUniversity of Waterlooen
dc.relation.urihttps://github.com/ProofFrog/ProofFrogen
dc.relation.urihttps://github.com/ProofFrog/examplesen
dc.subjectcryptographyen
dc.subjectproof verificationen
dc.subjectgame hoppingen
dc.subjectformal verificationen
dc.subjectproof assistantsen
dc.subjectstate separating proofsen
dc.subjectProofFrogen
dc.titleProofFrog: A Tool For Verifying Game-Hopping Proofsen
dc.typeMaster Thesisen
dc.pendingfalse
uws-etd.degree.departmentDavid R. Cheriton School of Computer Scienceen
uws-etd.degree.disciplineComputer Scienceen
uws-etd.degree.grantorUniversity of Waterlooen
uws-etd.degreeMaster of Mathematicsen
uws-etd.embargo.terms0en
uws.contributor.advisorStebila, Douglas
uws.contributor.affiliation1Faculty of Mathematicsen
uws.published.cityWaterlooen
uws.published.countryCanadaen
uws.published.provinceOntarioen
uws.typeOfResourceTexten
uws.peerReviewStatusUnrevieweden
uws.scholarLevelGraduateen


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record


UWSpace

University of Waterloo Library
200 University Avenue West
Waterloo, Ontario, Canada N2L 3G1
519 888 4883

All items in UWSpace are protected by copyright, with all rights reserved.

DSpace software

Service outages