Scenario: a class that is not mandatory. The teacher wants a protocol that will satisfy the following requirements:
- It must record each student's attendance.
- A student X should not be able to say that another student Y went to the lecture.
- The teacher should not be able to know who attended the lessons and who didn't until the end of the term.
- It must provide integrity and non-repudiation.
- It must be simple and fast.
This is what I thought:
Suppose that there are N students enroled.
Each class:
- The teacher generates N random numbers, stores them somewhere safe, and writes them down on a separate piece of paper.
- He gives one of these to each of the students that attend a class. He asks them to sign the reverse of the paper.
- The students sign, and give the piece of paper to the teacher.
- The teacher can check whether a student invented a number.
At the end of the semester:
- The teacher asks for ID of each of the enroled students (or any other document that contains the signature), so he can now know who attended each class and who didn't.
Are there any visible flaws?