
HElib is an open-source software library that implements homomorphic encryption. It supports the BGV scheme with bootstrapping and the Approximate Number CKKS scheme. HElib also includes optimizations for efficient homomorphic evaluation, focusing on effective use of ciphertext packing techniques and on the Gentry-Halevi-Smart optimizations.
HElibは、準同型暗号(HE)を実装したオープンソース(Apache License v2.0)のソフトウェアライブラリです。現在利用可能なスキームは、ブートストラッピングを備えたBrakerski-Gentry-Vaikuntanathan(BGV)スキームと、Cheon-Kim-Kim-Song(CKKS)による近似数値スキームの実装であり、準同型評価をより高速に実行するための多くの最適化を伴っています。その最適化は主に、Smart-Vercauterenの暗号文パッキング技術とGentry-Halevi-Smartの最適化の効果的な利用に焦点を当てています。このライブラリで使用されているいくつかのアルゴリズムの説明については、このレポートを参照してください。
HElibにおけるCKKSスキーム実装のセキュリティに関する最新の議論については、CKKS-security.mdを参照してください。
2018年半ば以来、HElibは、信頼性、堅牢性と保守性、性能、そして最も重要なこととして、HEとその応用に取り組む研究者・開発者にとってのユーザビリティを目指して、大規模なリファクタリングが行われてきました。
HElibは、*「HEのためのアセンブリ言語」*をサポートしており、低レベルのルーチン(set、add、multiply、shiftなど)、高度な自動ノイズ管理、改良されたBGVブートストラッピング、マルチスレッド、さらにCtxt(暗号文)オブジェクトの機能を模倣するPtxt(平文)オブジェクトのサポートも提供します。レポートDesign and implementation of HElibには追加の詳細が含まれています。また、HElibのリリースに関する詳細については、CHANGES.mdも参照してください。
完全なインストール手順と必要な依存関係の一覧は、INSTALL.mdにあります。
HElibを使ったプログラミングを始めるための指針については、examplesディレクトリにあるサンプルプログラムとCKKSチュートリアルを参照してください。詳細はexamples/README.mdをご覧ください。
HElibへの貢献に興味がある場合は、コントリビューションガイドラインをお読みください。
HElibはC++17で書かれており、NTL数学ライブラリを使用しています。
HElibはApache License v2.0の条件の下で配布されています。