SECURITY · IN PLAIN WORDS
The code is public.
The keys are not.
All of MCQ Advanced's code is open: nothing rests on a hidden secret, only on keys you alone hold. Here is what is guaranteed, what is only detected, and what no software can prevent.
During the exam, the paper is necessarily readable on the student's device. The guarantees below hold within that limit, as for a paper exam.
| What a student might try | What MCQ Advanced does | Level |
|---|---|---|
| Reading the paper before the exam | The paper is encrypted. It opens with a code you give when the exam starts. | Guaranteed |
| Reading the answers during the exam | The answer key is encrypted apart, with a key students do not have. Their copy holds neither correct answers nor explanations. | Guaranteed |
| Changing answers after the correction | The copy is sealed before any correction. The correction opens with an end code you reveal once everyone has handed in. | Guaranteed |
| Circulating a forged paper | Every package is signed. The player shows your fingerprint, also printed on the room sheet: a forgery shows another one. | Guaranteed |
| Altering a package or a copy | A single changed byte, and the file is refused. | Guaranteed |
| Reading another student's copy | Every copy is sealed for your key alone. The name is declared, as on paper; the receipt code ties the copy to the student who received it. | Guaranteed |
| Copying from a neighbour | Questions and answers are shuffled per student, unless you turn it off. | Limited |
| Cheating on time | Time spent and leaving the window are recorded in the copy. Without a server, a device's clock can be changed. | Detected, not prevented |
| Searching the web | Leaving the exam window is recorded and reported in the analysis, not prevented. | Detected, not prevented |
| Photographing the screen | No software can prevent it. Nor can a paper exam. | Out of reach |
A practice paper has no code: its answers are readable at once, and the player tells the student so.
Your data stays with you.
- MCQ Advanced asks for no account and sends nothing to a server: a copy is a file the student hands you.
- The player keeps the answers in progress on the student's device, to resume after an interruption. Never the paper nor its answers.
- Your draft stays in your browser or on your computer.
- A paper cannot run code on the student's device: no raw HTML, no links, no remote images.
Good habits.
- Print the fingerprint on the room sheet and ask students to compare it with the one on their screen.
- Give the opening code when the exam starts, not before.
- Reveal the end code only once every copy has been handed in.
- Keep your identity file and its passphrase apart, with a backup of the file: without them, copies can no longer be read.
For specialists.
Standard building blocks only, no home-made cryptography: Ed25519 to sign, XChaCha20-Poly1305 to encrypt, HPKE (RFC 9180) to seal copies, Argon2id for codes and the passphrase. The threat model, the file formats and the test vectors are published in SECURITY.md .
Found a flaw? Report it privately from the "Security" tab of the GitHub repository, not in a public issue.