Repolode
microsoft

microsoft/SEAL

Microsoft SEAL은 복호화하지 않고도 암호화된 숫자를 더하고 곱할 수 있게 해 주는 오픈소스 C++ 동형 암호 라이브러리입니다.

스타
4,054
포크
779
열린 이슈
110
마지막 커밋
그저께

어떤 프로젝트인가요?

Microsoft SEAL은 Microsoft Cryptography Research Group이 개발한 동형 암호 라이브러리입니다. 프로그램이 암호화된 데이터를 대상으로 연산할 수 있어, 클라우드 서비스가 값을 읽지 못하는 상태로 계산을 수행하고 비밀 키를 가진 데이터 소유자만 결과를 복호화할 수 있습니다. 정수 또는 실수의 암호문에 대한 덧셈과 곱셈을 지원합니다.

이 라이브러리는 정수의 정확한 모듈러 연산을 위한 BFV 및 BGV 스킴과 실수 또는 복소수의 근사 연산을 위한 CKKS 스킴을 구현합니다. 따라서 암호화된 값의 합계를 구하거나 머신러닝 모델을 평가하는 작업에 적합합니다. 표준 C++17로 작성되었으며 NuGet 패키지로 배포되는 .NET 래퍼도 포함합니다. CMake, vcpkg, Homebrew를 통해 빌드할 수 있고, Intel HEXL, Zstandard, ZLIB를 선택적으로 지원합니다.

동형 암호는 계산 비용이 높고 지원되는 연산이 제한적이므로, SEAL은 범용 연산보다는 프로그램에서 개인정보 보호가 중요한 부분에 사용하는 것을 목표로 합니다. 프로젝트 문서에서는 프로덕션 코드를 작성하기 전에 예제를 꼼꼼히 살펴볼 것을 권장합니다.

핵심 기능

  • 01정수(BFV, BGV)와 실수 또는 복소수(CKKS)의 암호문에 대한 덧셈과 곱셈.
  • 02CMake로 빌드하는 표준 C++17 코드베이스로, Windows, Linux, macOS, Android, iOS, WebAssembly를 지원합니다.
  • 03NuGet 패키지로 제공되는 공식 .NET 래퍼.
  • 04AVX-512 프로세서에서 Intel HEXL을 통한 선택적 가속.
  • 05암호문과 키의 압축 및 비트 패킹 직렬화.

활용 사례

  • 클라우드 서비스에서 민감한 암호화 데이터를 대상으로 합계나 통계를 계산합니다.
  • 개인정보를 보호해야 하는 상황에서 암호화된 입력값으로 머신러닝 모델을 평가합니다.
  • 프라이버시 보호 연산 프로토콜을 연구하거나 프로토타이핑합니다.
  • .NET 또는 C++ 애플리케이션에 암호화 연산 기능을 추가합니다.

빠른 시작

  1. 1

    vcpkg로 설치(대부분의 플랫폼에서 작동)

  2. 2

    macOS에서는 Homebrew로 설치

  3. 3

    FreeBSD에서는 pkg 도구로 설치

    pkg install seal
  4. 4

    .NET에서는 Microsoft.Research.SEALNet NuGet 패키지 설치

사용 전 알아둘 점

  • 암호화된 데이터에는 덧셈과 곱셈만 지원되며, 비교와 분기 처리는 불가능합니다.
  • CKKS 방식은 근삿값만 제공하므로 정확한 값이 필요한 경우에는 적합하지 않습니다.
  • Microsoft SEAL은 학습 곡선이 가파르며 동형 암호의 개념을 이해해야 합니다.
  • 동형 암호는 성능 오버헤드가 크고 암호문 크기도 훨씬 커지며, 대부분의 방식은 기존 암호화보다 보안 보장이 약합니다.

토픽

자주 묻는 질문

SEAL은(는) 무엇인가요?
Microsoft SEAL은 복호화하지 않고도 암호화된 숫자를 더하고 곱할 수 있게 해 주는 오픈소스 C++ 동형 암호 라이브러리입니다. Microsoft SEAL은 Microsoft Cryptography Research Group이 개발한 동형 암호 라이브러리입니다. 프로그램이 암호화된 데이터를 대상으로 연산할 수 있어, 클라우드 서비스가 값을 읽지 못하는 상태로 계산을 수행하고 비밀 키를 가진 데이터 소유자만 결과를 복호화할 수 있습니다. 정수 또는 실수의 암호문에 대한 덧셈과 곱셈을 지원합니다.
SEAL은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
SEAL은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
SEAL은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. SEAL의 마지막 커밋은 2026년 10월 19일입니다.
SEAL은(는) 어디에 사용할 수 있나요?
클라우드 서비스에서 민감한 암호화 데이터를 대상으로 합계나 통계를 계산합니다. 개인정보를 보호해야 하는 상황에서 암호화된 입력값으로 머신러닝 모델을 평가합니다. 프라이버시 보호 연산 프로토콜을 연구하거나 프로토타이핑합니다. .NET 또는 C++ 애플리케이션에 암호화 연산 기능을 추가합니다.
SEAL는 어떻게 설치하나요?
vcpkg로 설치(대부분의 플랫폼에서 작동) macOS에서는 Homebrew로 설치 FreeBSD에서는 pkg 도구로 설치: pkg install seal .NET에서는 Microsoft.Research.SEALNet NuGet 패키지 설치
SEAL은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/microsoft/SEAL

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트