I have to collect a unique, important number from a number of people as part of a larger study. Think Social Security number, but not that. I need the actual number at a later point in the process, but I would like to avoid ever keeping this number, even encrypted, on the laptops which will be used to record the data.
My thought was to use a salted hash for storing the numbers, and then generate a rainbow table to reverse that hash, but keep the rainbow table under lock and key (of course).
Generating the rainbow table is pretty trivial, but making it useful so that the numbers can be retrieved is a more thorny problem. If I build the table using sqlite it will be around 830 gigabytes. So, I would get a 1 terabyte external drive and build it there. This limits filesystem options, but should be workable.
So, the questions:
- Is this worth the effort?
- Is sqlite the right DB for the job?
- I have ways of keeping the salt secret - are there other major flaws in the plan?