Qual è la differenza tra crittografia completamente omomorfica e semi-omomorfica?
Se sei soddisfatto di una definizione più matematica:
Una crittografia completamente omomorfica conserva una struttura ad anello.
Questo significa che abbiamo un Ring (R, +, *), dove R sono i nostri bit su cui operiamo, (R, +) è un gruppo abeliano , mentre (R, *) è un monoid . Con aggiunta e mupltiplication su bit è possibile creare porte NAND. Se si hanno porte NAND, è possibile derivare ogni altra porta booleana e quindi sono in grado di eseguire tutti i calcoli sui dati crittografati.
La crittografia semi-omomorfica d'altra parte supporta solo un'operazione e pertanto non è possibile creare porte NAND, il che significa che non è possibile eseguire tutti i calcoli sui dati crittografati.
In breve, uno "schema di crittografia homorfico " significa che sei in grado di applicare le operazioni sul messaggio cifrato e vedere il risultato di queste operazioni una volta decifrato il messaggio.
Di solito, queste operazioni sono correlate all'aritmetica (che è noto per essere completa Turing, che significa che puoi codificare qualsiasi programma in esso contenuto).
Poiché gli operatori aritmetici sono " addizione " e " moltiplicazione " (sottrazione e divisione sono il doppio di questi operatori). Uno schema di crittografia completamente omomorfico è in grado di eseguire addizioni e moltiplicazioni sul messaggio cifrato.
Uno schema di crittografia semi-omomorfico supporta solo uno dei due operatori. Ad esempio, lo schema di crittografia RSA è omomorfico per la moltiplicazione (ma chiaramente non per l'aggiunta).
Di solito quando parli di "crittografia semi-omomorfica", può significare due cose:
Non supportate tutte le operazioni di crittografia completamente omomorfica (ad esempio addizione ma non moltiplicazione) perché il vostro caso d'uso richiede solo un sottoinsieme di esse e ciò ridurrà il (tremendo) sovraccarico della crittografia omomorfica.
Il tuo sistema ha un comportamento omomorfico, ma a causa del disturbo / rumore aggiunto ai dati, più manipoli alcuni dati, meno sono sicuri (ovvero devi aumentare le dimensioni di cifratura per compensare o dovrai semplicemente scartare i dati dopo un determinato numero di operazioni perché non sono più ritenute "sicure")
Senza più contesto, è difficile dire di quale si sta chiedendo.
Leggi altre domande sui tag encryption homomorphic-encryption