In this assignment, we consider trustworthiness: how to convince ourselves and others (e.g. the consumer) that the software we write is secure. The goal is to gain better understanding of trustworthiness, to gain the ability to assess trustworthiness, and to gain first-hand experience with writing trustworthy software using information-flow control.

Description

Here.

Notes

Note: This assignment gives you hands-on experience with Paragon - an information-flow secure programming language. Being a cutting-edge tool, it is very much a research prototype; it provides very uninformative error messages. We imagine it could sometimes be extremely frustrating for you guys to debug your code (to figure out why it does not compile). For this reason, we are not going to require that you submit code that compiles in this part of the assignment. Instead, if you cannot get the code to compile, we request an explanation of how you would modify the code (in English), supported with code snippets. Do install Paragon and give it a try; it’s fun!