I am working on an text editor type application that runs something like this (it is a small scale app):
- Client can use app for an hour after running it. The app is in a boxed environment where they cannot leave the app without losing all their data.
- Once the time is up, the program will save the client's text input in a file to their local directory.
- Client can then turn this file in.
It's step 2 that I am thinking about. I want to design the application so that once the time is up, the file on the clients local directory is encrypted so that they cannot view the text contents of it again. I know I can use checksums to track any tampering after the time is up, but that is not what I am asking. I need them to not be able to recover the text input they put in the first place.
My immediate idea was to provide each client with a public key, and store a server side private key for each client. When the application closes, their text is RSA encrypted using the provided public key and only I will be able to encrypt the submission from the private keys I hold.
However I know RSA is not a good approach for encrypting actual data. As I understand, it is used more for encrypting the keys to some symmetric encryption system.
Should I just use RSA here or is there a better approach?