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 tryWhat MCQ Advanced doesLevel
Reading the paper before the examThe paper is encrypted. It opens with a code you give when the exam starts.Guaranteed
Reading the answers during the examThe 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 correctionThe copy is sealed before any correction. The correction opens with an end code you reveal once everyone has handed in.Guaranteed
Circulating a forged paperEvery 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 copyA single changed byte, and the file is refused.Guaranteed
Reading another student's copyEvery 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 neighbourQuestions and answers are shuffled per student, unless you turn it off.Limited
Cheating on timeTime 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 webLeaving the exam window is recorded and reported in the analysis, not prevented.Detected, not prevented
Photographing the screenNo 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.

Good habits.

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.