
HElib은 동형 암호화를 구현하는 오픈소스 소프트웨어 라이브러리입니다. 부트스트래핑을 지원하는 BGV 방식과 근사 연산 CKKS 방식을 지원합니다. HElib은 또한 효율적인 동형 평가를 위한 최적화를 포함하며, 암호문 패킹 기법의 효과적인 사용과 Gentry-Halevi-Smart 최적화에 중점을 둡니다.
HElib는 동형 암호화(https://github.com/homenc/helib/blob/master/HE)를 구현하는 오픈소스(Apache License v2.0) 소프트웨어 라이브러리입니다. 현재 사용 가능한 방식은 부트스트래핑이 포함된 Brakerski-Gentry-Vaikuntanathan(https://github.com/homenc/helib/blob/master/BGV) 방식과 Cheon-Kim-Kim-Song(https://github.com/homenc/helib/blob/master/CKKS)의 근사 수(Approximate Number) 방식 구현으로, 동형 평가를 더 빠르게 실행하기 위한 많은 최적화를 포함하며, 주로 Smart-Vercauteren 암호문 패킹 기술과 Gentry-Halevi-Smart 최적화의 효과적인 사용에 중점을 둡니다. 이 라이브러리에서 사용되는 몇 가지 알고리즘에 대한 설명은 이 보고서를 참조하십시오.
HElib의 CKKS 방식 구현 보안에 대한 최신 논의는 CKKS-security.md를 참조하십시오.
2018년 중반부터 HElib는 HE 및 그 용도로 작업하는 연구자와 개발자를 위한 신뢰성(Reliability), 견고성 및 서비스 가능성(Robustness & Serviceability), 성능(Performance), 그리고 가장 중요하게는 *사용성(Usability)*을 위해 광범위한 리팩토링을 진행해 왔습니다.
HElib는 *"HE용 어셈블리 언어"*를 지원하며, 저수준 루틴(set, add, multiply, shift 등), 정교한 자동 노이즈 관리, 개선된 BGV 부트스트래핑, 멀티스레딩, 그리고 Ctxt(암호문) 객체의 기능을 모방하는 Ptxt(평문) 객체 지원을 제공합니다. HElib의 설계 및 구현 보고서에는 추가 세부 정보가 포함되어 있습니다. 또한 HElib 릴리스에 대한 자세한 내용은 CHANGES.md를 참조하십시오.
전체 설치 지침과 필요한 의존성 목록은 INSTALL.md에서 확인할 수 있습니다.
HElib 프로그래밍을 시작하는 방법에 대한 지침은 examples 디렉토리에 있는 예제 프로그램과 CKKS 튜토리얼을 참조하십시오. examples/README.md를 참조하세요.
HElib에 기여하는 데 관심이 있다면 기여 지침을 읽어 주십시오.
HElib는 C++17로 작성되었으며 NTL 수학 라이브러리를 사용합니다.
HElib는 Apache License v2.0의 조건에 따라 배포됩니다.