
HElib é uma biblioteca de software de código aberto que implementa criptografia homomórfica. Ela suporta o esquema BGV com bootstrapping e o esquema de Números Aproximados CKKS. O HElib também inclui otimizações para avaliação homomórfica eficiente, focando no uso eficaz de técnicas de empacotamento de texto cifrado e nas otimizações de Gentry-Halevi-Smart.
O HElib é uma biblioteca de software de código aberto (Licença Apache v2.0) que implementa criptografia homomórfica (HE). Os esquemas atualmente disponíveis são as implementações do esquema Brakerski-Gentry-Vaikuntanathan (BGV) com bootstrapping e o esquema de Números Aproximados de Cheon-Kim-Kim-Song (CKKS), juntamente com muitas otimizações para tornar a avaliação homomórfica mais rápida, focando principalmente no uso eficaz das técnicas de empacotamento de texto cifrado de Smart-Vercauteren e nas otimizações de Gentry-Halevi-Smart. Consulte este relatório para uma descrição de alguns dos algoritmos usados nesta biblioteca.
Consulte CKKS-security.md para a discussão mais recente sobre a segurança da implementação do esquema CKKS no HElib.
Desde meados de 2018, o HElib vem passando por uma extensa refatoração para Confiabilidade, Robustez & Manutenibilidade, Desempenho e, principalmente, Usabilidade para pesquisadores e desenvolvedores que trabalham com HE e seus usos.
O HElib suporta uma "linguagem assembly para HE", fornecendo rotinas de baixo nível (set, add, multiply, shift, etc.), gerenciamento automático sofisticado de ruído, bootstrapping BGV aprimorado, multithreading e também suporte para objetos Ptxt (texto simples) que imitam a funcionalidade dos objetos Ctxt (texto cifrado). O relatório Design e implementação do HElib contém detalhes adicionais. Consulte também CHANGES.md para mais informações sobre os lançamentos do HElib.
Instruções completas de instalação e uma lista das dependências necessárias podem ser encontradas em INSTALL.md.
Para obter orientação sobre como começar a programar com o HElib, dê uma olhada
nos programas de exemplo e nos nossos tutoriais de CKKS localizados no diretório
examples. Consulte examples/README.md.
Se você estiver interessado em contribuir com o HElib, leia nossas Diretrizes de Contribuição.
O HElib é escrito em C++17 e usa a biblioteca matemática NTL.
O HElib é distribuído sob os termos da Licença Apache v2.0.