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.
El Gamal is an example of an algorithm that does PHE, but the wiki page doesn't clearly explain what blind math operations are supported and how to implement them.
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.
Question
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"