So my problem, in its general form, is encrypting test questions such that a client-side testing application can access the questions while students cannot. The naive approach, in my opinion, is to use a symmetric key algorithm, with the key hard-coded within the application, to encrypt and decrypt the questions. The problem of course being that any student with some security savvy could recover the key.
Assuming that a server-based approach is not viable (no internet connectivity), is there a way to secure questions in this scenario such that the application can decrypt them, students cannot, and the key is not stored within the application? I suspect I know the answer, but I would like to hear from those more knowledgeable than myself.