A homomorf titkosításnak két típusa létezik.
A részben homomorf titkosítás a műveletek egyik típusának kiszámításáról szól a titkosított értékek felett. Például tudja: E (m 1 ) és E (m 2 ) , és anélkül, hogy privát kulcs, kiszámíthatja az E (m 1 * m 2 ) t. Számos hatékony algoritmus ismert, amelyek lehetővé teszik ezt, különösen az ElGamal (amely lehetővé teszi a titkosított üzenetek sokszorosítását) és a Paillier kriptorendszer (amely lehetővé teszi titkosított üzenetek hozzáadását). A részben homomorf titkosítás hasznos néhány protokollnál, pl. elektronikus szavazás (az ötlet az, hogy a titkosított szavazatokat összeszámolhatja, és a végén visszafejtheti az eredményt). A részben homomorf titkosítás jól működik, és ezt legalább egy évtizede meg is tette.
A teljesen homomorf titkosítás a két típusú művelet kiszámításáról szól a titkosított értékeken: az E (m 1 ) és az E (m 2 ) értékekből kiszámíthatja az E (m 1 * m 2 ) és E (m 1 + m 2 ) . A teljesen homomorf titkosítás tetszőleges számításokat tesz lehetővé; végső soron titkosított bemeneteket nyújthat egy biiig számítógéphez, amely lefuttatja a számítást és biztosítja a titkosított eredményt anélkül, hogy bíznod kellene abban a nagy számítógépben. Az elképzelés az, hogy egy virtuális áramkörben lévő tranzisztor állapota titkosítható, és az összeadások / szorzások elegendőek ahhoz, hogy a tranzisztor bemenetein alapuló állapotváltozásokat utánozzanak. A nagy számítógépnek virtuális CPU-t kellene futtatnia, néhány homomorf művelettel a virtuális CPU minden tranzisztorához és az minden óra ciklushoz. Mondanom sem kell, hogy ez drágának tűnik.
Sajnos a legismertebb, teljesen homomorf titkosítási algoritmusok (Gentry 2009-es munkájából származnak) borzasztóan lassúak és nem hatékonyak, ezért nem éri meg a fáradságot (vagyis az egész Amazon S3 felhő nem tudta homomorf módon gyorsabban kiszámítani, mint amit egyetlen intelligens kártya képes titkosítás nélkül). A kutatási terület nem halott, messze van tőle; de nagyon új, és még nem hozott semmi praktikusat.