1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/secretflow-heu

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_cn.md 7.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 07:48 fe07e78

HEU (Homomorphic Encryption processing Unit) — это библиотека с низким порогом входа и высокой производительностью для гомоморфного шифрования, которая поддерживает разнообразные типы и расширяемую экосистему аппаратного ускорения.

Документация: https://www.secretflow.org.cn/docs/heu/

Состояние разработки:

Гомоморфное шифрование в основном делится на две категории: частично гомоморфное (PHE) и полностью гомоморфное (FHE). В настоящее время HEU поддерживает большинство алгоритмов PHE, а FHE всё ещё требует времени для разработки.

Поддерживаемые алгоритмы:

  • Алгоритмы частично гомоморфного шифрования:
    • Paillier (рекомендуется);
    • Okamoto–Uchiyama (рекомендуется);
    • EC ElGamal;
    • Damgard-Jurik;
    • Damgard-Geisler-Krøigaard (DGK).
  • Алгоритмы полностью гомоморфного шифрования находятся в разработке и являются основным направлением работы над HEU в настоящее время.

Каждый класс алгоритмов включает в себя множество различных реализаций, некоторые из которых поддерживают аппаратные ускорители. Подробности см. в документации.

Структура каталогов

.
├── .circleci  # CI/CD конфигурация CircleCI
├── .github    # Конфигурация GitHub
├── docs       # Документация HEU, формат Sphinx
├── heu        # Весь код реализации HEU
│   ├── algorithms     # Реализация всех алгоритмов, включая PHE и FHE
│   ├── experimental   # Некоторые независимые экспериментальные коды
│   ├── library        # HE Library, реализация функций прикладного уровня
│   │   ├── algorithms # Не перенесённые в SPI реализации алгоритмов, будут удалены после переноса
│   │   ├── benchmark  # Код для базовых тестов
│   │   ├── numpy      # Реализация интерфейса, подобного Numpy
│   │   └── phe        # PHE Dispatcher (скоро будет заменён на SPI)
│   ├── pylib          # Python binding
│   └── spi            # Определение интерфейса подключения к HEU для программного и аппаратного обеспечения (SPI), включая:
│       ├── he         # HE SPI и связанные наброски
│       └── poly       # Определение полиномиального интерфейса и связанных набросков
└── third_party        # Ссылки на сторонние библиотеки, необходимые для компиляции, которые автоматически загружаются при компиляции

В настоящее время HEU переходит от старой архитектуры Dispatcher к архитектуре на основе SPI. Основные модули двух архитектур и их сопоставление путей кода следующие:

Архитектура на основе Dispatcher:

     Python APIs (Python binding)
          PATH: heu/pylib

                  ├───────────────────┐
                  │                   ▼
                  │    Tensor Lib with Numpy-like API
                  │        PATH: heu/library/numpy
                  │                   │
                  │     ┌─────────────┘
                  │     │
                  ▼     ▼
     PHE Dispatcher & PHE C++ API
        PATH: heu/library/phe



 Various PHE algorithm implementations
     PATH: heu/library/algorithms

Архитектура на основе SPI:

    Python APIs (Python binding)
         PATH: heu/pylib

                 ├───────────────────┐
                 │                   ▼
                 │    Tensor Lib with Numpy-like API
                 │           PATH: heu/numpy
                 │                   │
                 │ ┌─────────────────┘
                 │ │
                 ▼ ▼
         HE SPI (C++ APIs)
         PATH: heu/spi/he



 Various HE algorithm implementations
        PATH: heu/algorithms

Для более подробного ознакомления с SPI см. heu/spi/README.md.

План работы на 2024 год

Вехи перехода на архитектуру SPI:

  • HE SPI: разработка универсального интерфейса, поддерживающего все алгоритмы PHE/FHE.
  • Реализация эскизов SPI (в процессе).
  • Перенос существующих алгоритмов в SPI (в процессе).
  • Автоматизация тестирования фреймворка для алгоритмов HE (в процессе).
  • Переход Tensor Lib с Dispatcher на SPI.
  • Переход PyLib с Dispatcher на SPI.

Вехи FHE:

  • Интеграция SEAL, предоставление функций алгоритмов BFV/BGV/CKKS.
  • Интеграция OpenFHE.
  • Поддержка GPU-ускоренного алгоритма CKKS.
  • Открытие интерфейса FHE для Tensor Lib.
  • Открытие интерфейса FHE для PyLib.

Компиляция и установка

Требования к среде

  • Процессор:
    • x86_64: поддержка как минимум AVX.
    • AArch64: ARMv8.
  • Операционная система:
    • Ubuntu 18.04+.
    • Centos 7.
    • macOS 12.0+ (macOS Monterey+).
  • Python:
    • Python 3.9+.

Установка через Pip

pip install sf-heu

Установка из исходного кода

Следующая команда автоматически скомпилирует и установит HEU в среду Python по умолчанию:

git clone git@github.com:secretflow/heu.git
cd heu
sh build_wheel_entrypoint.sh

Запуск модульных тестов (необязательно)

# только компиляция, без запуска UT (необязательно)
bazel build heu/...

# компиляция и запуск всех UT
bazel test heu/...

Руководство по внесению вклада

Секретный поток — это очень инклюзивное и открытое сообщество. Мы приветствуем любой вклад, и если вы хотите улучшить HEU, обратитесь к руководству по внесению вклада.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/secretflow-heu.git
git@api.gitlife.ru:oschina-mirror/secretflow-heu.git
oschina-mirror
secretflow-heu
secretflow-heu
main