So the problem I'm exploring is basically how to run a paper exam (such as the SAT) in such a way that participants can be sure that their exams were graded fairly, meaning the exam hosts can't change the answers or questions of the exam after the exam is conducted without the examinees finding out.
So we have a test which consists of $n$ strings that are questions each of which are multiple choice with $5$ choices.
Currently the protocol I had was the following:
Examinees get a test booklet and a scantron. They have a fixed amount of time to fill their scantron and to perform some cryptographic verifications. If they don't finish their exam, finish their verifications, and submit before the time is up then their test is considered void. This might seem unreasonable for people that wait to the list minute to submit but it easier than trying to schedule verification of materials while avoiding cheating/writing answers overtime.
The testbooklet contains on one of its pages a string filled with the text for every question concatenated without spaces. Then it features a hash of this string. Then it features a digital signature signed by the test providers private key of this hash. Participants at some point of taking the exam can verify that indeed the text + hash + digital signature is consistent with the public key of the provider using a 3rd party device in the testing room.
In order to submit their scantron the examinee provides their scantron to a device which produces a string containing all of the examinees answers concatenated together, then a hash of this string is produced, then a digital signature signed by the private key of the testing provider is produced. Examinees can then verify their scantron was correctly encoded by the same 3rd party device in the examination room. Once they are content they hand over their scantron for grading.
Examinees take their testing booklet home.
Once the scantrons are graded each examinee receives what the grader claims their answers are, and what the grader claims their questions were. The examinee can contest a particular answer or question by noting they have a signed certificate from the provider asserting their answer was __, or that a particular question was ___ and the examinee can use the providers public key to prove authenticity of their certificates.
So theres a couple issues with this scheme,
What if the 3rd party device manufacturer and Testing Provider collude? The only reason that 3rd party device manufacturer enters the picture is because its not reasonable to allow examinees to bring their own smartphones/computers to the room.
What if the provider changes their public key after running the exam. Then they can just tell the examinee "oh sorry but that certificate is clearly invalid it doesn't match our new key and we deny that there ever was a different old key".
This protocol is logistically kind of challenging. you have people near the end of an exam using a 3rd party machine to verify authenticity.
So I guess I was wondering is there a better way to come up with a physical protocol for how to conduct paper which assumes the minimal amount of trust possible on the testing provider + grader?