Our goal is to create a definitional wiki for cryptography. (The word ``wiki'' here is used abstractly, to indicate the intent; it may or may not be implemented via this technology.) We seek a comprehensive, unified rendition of cryptographic definitions. It will be latex based. It will be open source. It will evolve and allow additions from outside our group. It will include latex .sty files as well as a webpage.
Why? What's the point? How does this help me in my goal of being a successful graduate student and publishing papers, you ask? Let me try to discuss the proposed project in light of such questions.
Definitions are the core of cryptography. Distilling them will instill a definition-based learning process. It won't be trivial. We will find many open questions and create opportunities to write many papers. Perhaps too many.
Good research is about being a good follower. Great research requires being a bit of a rebel. This class aims to bring out the rebel in you. In the theory of cryptography community, details (about definitions in particular) are not viewed as important. ``Smart'' people don't worry about these things. ``Smart'' people ``know'' how to fix or change incorrect definitions as they move along. We will learn to look at the field and prior work in a counter-cultural way. We will see that details do matter, and, when done right, increase understanding and make results easier to access.
This article on Research debt discusses how the path to understanding the body of existing knowledge is made difficult by lack of distillation. We aim, in part, to reflect this theme, and make distillation easier.
Towards becoming great researchers, and doing great research, we need many skills that are often not explicitly discussed. These include developing critical thinking; rather than giving up, achieving success by changing the problem and model; moving from learning and understanding to producing; developing communication skills and the ability to work interactively with others; developing intuition as a tool to move forward quickly on ground that is not firm; developing precision in language and thought; developing the confidence to call out poor and incorrect work. We will discuss all these and more, and we will see definitional thinking, and the wiki, as a way to distill these issues and allow us to focus on them. The development of the wiki functions as a practice (like meditation) to increase focus and allow us to see things as they really are.
A couple of papers we will discuss at the start to get us on track are [BH15] and [GKW17]. I will explain the relevance in class.
The class could divide up into small teams. The teams can by dynamic rather than static, changing with time. A team could have the task of looking into, redacting and rendering definitions on some particular topic. Example topics are obfuscation, functional encryption, symmetric encryption, function families (PRFs, CR, MAC, ...), commitment schemes, public-key encryption, digital signatures and so on. Within each category there are many variant and different definitions.
Some specific tasks and questions to resolve include the following. What is a good medium for this? Github? An actual Wiki? Who is allowed access? How does one create .sty files? Look into the Cryptocode package.