
HElib — это библиотека с открытым исходным кодом, реализующая гомоморфное шифрование. Она поддерживает схему BGV с бутстрэппингом и схему приближённых чисел CKKS. HElib также включает оптимизации для эффективного гомоморфного вычисления, уделяя особое внимание эффективному использованию методов упаковки шифротекстов и оптимизациям Гентри-Халеви-Смарта.
HElib — это библиотека с открытым исходным кодом (лицензия Apache v2.0), реализующая гомоморфное шифрование (HE). В настоящее время доступны реализации схемы Бракерски-Гентри-Вайкунтанатана (BGV) с бутстрэппингом и схемы приближённых чисел Чеон-Ким-Ким-Сон (CKKS), а также множество оптимизаций, ускоряющих выполнение гомоморфных вычислений и направленных в основном на эффективное использование методов упаковки шифртекстов Смарта-Веркаутерена и оптимизаций Гентри-Халеви-Смарта. Описание некоторых алгоритмов, используемых в этой библиотеке, приведено в этом отчёте.
С последним обсуждением вопросов безопасности реализации схемы CKKS в HElib можно ознакомиться в CKKS-security.md.
С середины 2018 года в HElib проводится масштабный рефакторинг, направленный на надёжность, устойчивость и сопровождаемость, производительность и, что наиболее важно, удобство использования для исследователей и разработчиков, работающих с HE и его применениями.
HElib поддерживает «язык ассемблера для HE», предоставляя низкоуровневые операции (присваивание, сложение, умножение, сдвиг и т.д.), сложное автоматическое управление шумом, улучшенный бутстрэппинг BGV, многопоточность, а также поддержку объектов Ptxt (открытый текст), имитирующих функциональность объектов Ctxt (шифртекст). Дополнительные сведения приведены в отчёте «Проектирование и реализация HElib». Также см. CHANGES.md для получения дополнительной информации о выпусках HElib.
Полные инструкции по установке и список необходимых зависимостей можно найти в INSTALL.md.
Чтобы начать программировать с HElib, ознакомьтесь с примерами программ и нашими учебными пособиями по CKKS в каталоге examples. См. examples/README.md.
Если вы заинтересованы в участии в разработке HElib, пожалуйста, ознакомьтесь с нашим руководством по участию в разработке.
HElib написан на C++17 и использует математическую библиотеку NTL.
HElib распространяется на условиях лицензии Apache v2.0.