It appears that only Partial Homomorphic Encryption(P.H.E.) is practical for modern day (2011) use. However I'm having difficulty locating libraries (FOSS or otherwise) that enable me to leverage this technology.
Potential Use Cases
A PHE is something that can be used abstract to offload mathematic operations to a 3rd without that party ever knowing what the underlying value is. e.g. x+y=z can be performed and it will have a valid encrypted result, but all 3 values are never known in unencrypted format to the third party. This is beneficial to protecting stock market analysis data, PII, or anything considered proprietary or confidential.
So, what encryption algorithms exist and what libraries exist that allow me to operate on the encrypted data? Samples of operations I'm interested in include
- Addition and Subtraction
- Multiplication or Division
- Comparisons (is encrypted X greater than encrypted Y)
- A technique that will allow me to compare the binary/encrypted ASCII version of the word "Ap" and do a Contains() or StartsWith() with the encrypted version of "Apple"