Parece que solo El cifrado homomorfo parcial (PHE) es práctico para el uso moderno (2011). Sin embargo, tengo dificultades para localizar bibliotecas (FOSS o de otro tipo) que me permitan aprovechar esta tecnología.
El Gamal es un ejemplo de un algoritmo que hace PHE, pero la página wiki no explica claramente Qué operaciones matemáticas ciegas son compatibles y cómo implementarlas.
Posibles casos de uso
Un PHE es algo que se puede usar en forma abstracta para descargar operaciones matemáticas a un tercero sin que esa parte sepa cuál es el valor subyacente. p.ej. x + y = z se puede realizar y tendrá un resultado cifrado válido, pero los 3 valores nunca se conocen en formato no cifrado para el tercero. Esto es beneficioso para proteger los datos de análisis del mercado de valores, la PII o cualquier cosa que se considere de propiedad o confidencial.
Pregunta
Entonces, ¿qué algoritmos de cifrado existen y qué bibliotecas existen que me permiten operar con los datos cifrados? Muestras de operaciones en las que estoy interesado incluyen
- Suma y resta
- multiplicación o división
- Las comparaciones (es X encriptada mayor que Y encriptada)
- Una técnica que me permitirá comparar la versión ASCII binario / cifrada de la palabra "Ap" y hacer un Contains () o StartsWith () con la versión cifrada de "Apple"