Trevor,
Thanks for your ideas. I think feeding encrypted content into Lucene may cause problems with querying. I am not sure but I would think queries like "a*b" may not work. I have been thinking about having the index in memory but there is a good chance that the index may become quite large and then having everything in memory will cause a hard limit that will be hard to overcome without buying additional memory. I'll look into Dokan. I am not 100% clear what it does. Hans Trevor Watson <[email protected]> Subject Re: How to secure/encrypt a Lucene index? Date Thu, 25 Feb 2010 21:41:11 GMT Just throwing ideas your way in general, If you use the System.Cryptography functions on a word, it _should_ remain the same when you run it a second time. This means you could encrypt each word, then do a search on the encrypted phrase. This way, you'd have a Lucene index of encrypted words. Then if you are using the Lucene index as the data store as well, you could potentially decrypt each field word by word as well. We have a program that temporarily stores data on a users computer using System.IO.IsolatedStorage. If you could decrypt the entire Lucene index each time the program starts, you could store it in there and access it (so long as the index isn't overly large so the start-up decrypt doesn't take too long). If the IsolatedStorage isn't working for a Lucene index you could create a RAM Disk or temporary disk on the drive to store the lucene index while accessing it, you could look at Dokan (dokan-dev.net) (there's a .NET wrapper for this) to create a temporary drive on your computer and decrypt the index into it.
