
HElib è una libreria software open-source che implementa la crittografia omomorfica. Supporta lo schema BGV con bootstrap e lo schema CKKS a numeri approssimati. HElib include anche ottimizzazioni per una valutazione omomorfica efficiente, concentrandosi sull'uso efficace delle tecniche di impacchettamento del testo cifrato e sulle ottimizzazioni Gentry-Halevi-Smart.
HElib è una libreria software open-source (Apache License v2.0) che implementa la crittografia omomorfica (HE). Gli schemi attualmente disponibili sono le implementazioni dello schema Brakerski-Gentry-Vaikuntanathan (BGV) con bootstrapping e lo schema a numeri approssimati di Cheon-Kim-Kim-Song (CKKS), insieme a molte ottimizzazioni per rendere più veloce la valutazione omomorfica, concentrandosi soprattutto sull'uso efficace delle tecniche di packing dei ciphertext di Smart-Vercauteren e sulle ottimizzazioni di Gentry-Halevi-Smart. Vedi questo rapporto per una descrizione di alcuni degli algoritmi usati in questa libreria.
Si prega di fare riferimento a CKKS-security.md per la discussione più recente sulla sicurezza dell'implementazione dello schema CKKS in HElib.
Da metà 2018 HElib è stato sottoposto a un ampio refactoring per Affidabilità, Robustezza e Manutenibilità, Prestazioni e, soprattutto, Usabilità per ricercatori e sviluppatori che lavorano su HE e sui suoi usi.
HElib supporta un "linguaggio assembly per HE", fornendo routine di basso livello (set, add, multiply, shift, ecc.), una sofisticata gestione automatica del rumore, un bootstrapping BGV migliorato, il multi-threading e anche il supporto per oggetti Ptxt (testo in chiaro) che imitano la funzionalità degli oggetti Ctxt (testo cifrato). Il rapporto Progettazione e implementazione di HElib contiene ulteriori dettagli. Inoltre, vedi CHANGES.md per maggiori informazioni sulle versioni di HElib.
Le istruzioni complete di installazione e un elenco delle dipendenze richieste si trovano in INSTALL.md.
Per una guida su come iniziare a programmare con HElib, dai un'occhiata ai programmi di esempio e ai nostri tutorial su CKKS situati nella directory examples. Vedi examples/README.md.
Se sei interessato a contribuire a HElib, ti preghiamo di leggere le nostre Linee guida per contribuire.
HElib è scritto in C++17 e utilizza la libreria matematica NTL.
HElib è distribuito secondo i termini della Apache License v2.0.