The Underhanded Crypto contest was inspired by the famous Underhanded C Contest, which is a contest for producing C programs that look correct, yet are flawed in some subtle way that makes them behave inappropriately. This is a great model for demonstrating how hard code review is, and how easy it is to slip in a backdoor even when smart people are paying attention.
The Underhanded Crypto Contest is the same but for cryptography. We welcome backdoors in implementations of cryptography (in any language) as well as backdoors at the design level so that any implementation of the design would contain a weakness.
This year’s contest is focused on cryptocurrencies. Your task is to put a subtle backdoor or weakness into a cryptocurrency, such that someone who knows about the weakness can use it to their advantage. The weakness should be hard to detect; imagine that you’re trying to insert it into the Bitcoin core code and that it will have to pass code review, or imagine that your idea will be submitted to an academic journal and will have to pass peer review. It doesn’t have to be completely undetectable, but the more damage you can do with as little chance of detection as possible, the better.
Your entry can take the form of a patch to the code of an existing cryptocurrency, a description of the way you could modify an existing design to add a backdoor, your own design for an entirely new cryptocurrency, or whatever. The only requirement is that there must be strong evidence that your backdoor will actually work. It is not enough to say “here’s a neat idea, and if you were to figure out these details it would work.” You must actually figure out the details! Of course, a working proof-of-concept is the best way to demonstrate your backdoor.
To submit an entry to the contest, email it to [email protected]. We’re accepting submissions now, and the deadline for the 2016 contest is
June 1, 2016 Extended to: June 30, 2016.
To make things easier for us and our volunteer judges, we require that you put your submission into the following format. Please send your submission as a compressed folder (.tar.gz, .tar.bz2, .zip. .7z, etc.) with the following contents:
- README-JUDGES.txt – An explanation of your submission, for the judges to read.
- AUTHORS.txt – The list of people who worked on your entry. See the template below.
- LICENSE.txt – The open source license your submission is released under (CC0, GPL, MIT, BSD, etc.)
- submission/ – A directory containing the technical contents (code, etc.) of your submission.
- README-JUDGES.txt must explain what everything in this directory is!
- blogpost/ – A directory containing a “blog post style” explanation of your entry. Please put the blog post contents in a plain text file. You may include images in this directory, too, if you want to use images to help explain your entry. Reference the image by its filename in the plain text file.
README-JUDGES.txt must explain what the stuff in the submission/ directory is, and must completely reveal the weakness in your entry (don’t try to make the judges find your backdoor!). In this file, explain to the judges what your entry does, why it’s hard to detect, and why it is a valuable entry that deserves to win. Keep it succinct; the judges don’t have unlimited time.
The blog post may be published on this website to help popularize your idea. Your audience when writing the blog post is a member of the infosec community who is interested in understanding your idea. Keep in mind that your reader might not have any formal background in cryptography or cryptocurrencies, so it may be necessary to give a higher level explanation than you did in README-JUDGES.txt. The blog posts will be published with you listed as the author, and can include a link to your website.
The entire contents of your submission must be under some sort of open source license. Good candidates are CC0, MIT, BSD, and GPL. Include the license text of the one you chose in LICENSE.txt. Assume everything you send us will be released to the public, but we will keep the entries secret until the judging is complete.
The AUTHORS.txt file should contain the following contents for each member of your team (or just yourself if you’re working alone). The authors will be listed on the website in the same order you place them in this file, so it is up to you if you want to put them in order of most-contributed to least-contributed or just alphabetical.
Which author is the primary contact for your team (required if you have multiple authors)?
What email address can we reach you at (required)?
What name / pseudonym would you like to be referred to by on the website (required)?
What website would you like us to link to (optional)?
What is your Twitter handle (optional)?
... Repeat the above for each author ...
Plagiarism is strictly forbidden. You are welcome to build on previous work, but if you fail to cite it or don’t explain how your work differs from it, your submission will be rejected.
We don’t have any prizes lined up yet. We’ll be working with sponsors to try and get some cool prizes for the winners!
Judging is done at our discretion. The judges will be volunteers who are independent from the contest organizers, and they will be free to judge the entries in a fair way that’s compatible with the amount of time they are willing to devote to the contest. Not everyone will have time to look over all of the submissions, so it is the judges’ job to select the submission (or submissions) that are noteworthy and deserve to be highlighted.
Announcement of the Winners
The winners will be announced some time around the first week of August.
The contest organizers and judges are not eligible to participate in the contest. Prizes may not be available should the winner(s) live in a country subject to embargo by the United States or Canada, or due to other legal restrictions. In the event that prizes can not be awarded due to legal restrictions, the contest organizers will make a good faith effort to resolve the situation within the applicable laws; if it is determined that the situation is not reasonably resolvable, the prizes will be donated to an appropriate charity.
If a winner does not wish to provide the identifying information necessary to deliver any prize(s) they have won, the prize(s) will be donated to an appropriate charity.