0 / 0
Go back to the English version of the documentation
Stosowanie szyfrowania homomorficznego dla bezpieczeństwa i prywatności
Last updated: 14 sie 2023
Stosowanie szyfrowania homomorficznego dla bezpieczeństwa i prywatności

Stowarzyszona nauka obsługuje szyfrowanie homomorficzne jako dodatkową miarę zabezpieczeń dla stowarzyszonych danych szkoleniowych. Szyfrowanie homomorficzne jest formą kryptografii klucza publicznego, która umożliwia komponowanie na zaszyfrowanych danych bez ich pierwszego deszyfrowania, co oznacza, że dane mogą być używane w modelowaniu bez narażania go na ryzyko wykrycia.

W przypadku szyfrowania homomorficznego wyniki obliczeń pozostają w postaci zaszyfrowanej, a po zdeszyfrowaniu, powodują, że dane wyjściowe są takie same, jak dane wyjściowe generowane z obliczeniami wykonywanymi na niezaszyfrowanych danych. Używany jest klucz publiczny do szyfrowania i klucz prywatny do deszyfrowania.

Jak to działa ze Stowarzyszoną Uczelnią

Szyfrowanie homomorficzne jest opcjonalną metodą szyfrowania, która umożliwia dodanie dodatkowego zabezpieczenia i prywatności do eksperymentu programu Federated Learning. Po zastosowaniu szyfrowania homomorficznego w eksperymencie uczenia stowarzyszonego, strony wysyłają homomorficznie zaszyfrowane aktualizacje modelu do agregatora. Agregator nie ma klucza prywatnego i może wyświetlić tylko homomorficznie zaszyfrowane aktualizacje modelu. Na przykład agregator nie może odtwarzać kodu źródłowego aktualizacji modelu w celu wykrycia informacji na temat danych uczących się stron. Agregator korzysta z aktualizacji modelu w postaci zaszyfrowanej, co powoduje zaszyfrowany zagregowany model. Następnie agregator wysyła zaszyfrowany zagregowany model do uczestniczących podmiotów, które mogą używać swojego klucza prywatnego do deszyfrowania i kontynuować następną runę szkolenia. Tylko podmioty uczestniczące mogą deszyfrować dane modelu.

Wspierane środowiska i metody syntezy jądrowej

W pełni Homomorphic Encryption (FHE) wspiera prostą metodę średniej fuzji dla tych modeli frameworków:

  • Tensorflow
  • Pytorch
  • Scikit-nauka klasyfikacji
  • Scikit-poznaj regresję

Zanim rozpoczniesz

Aby rozpocząć korzystanie z szyfrowania homomorficznego, należy upewnić się, że eksperyment spełnia następujące wymagania:

  • Specyfikacja sprzętu musi być minimalna mała. W zależności od zastosowanego poziomu szyfrowania, może być potrzebna większa specyfikacja sprzętu, aby zmieścić zużycie zasobów spowodowane przez bardziej wydajne szyfrowanie danych. Zapoznaj się z tabelą poziomu szyfrowania w sekcji Konfigurowanie agregatora.-Specyfikacja oprogramowania to fl-rt22.2-py3.10.

  • FHE jest obsługiwany w wersji klienta Python w wersji 1.0.263 lub nowszej. Wszystkie podmioty muszą korzystać z tej samej wersji klienta Python .

Wymogi dotyczące stron

Każda ze stron musi:

  • Uruchom w systemie Linux x86 .
  • Skonfiguruj przy użyciu certyfikatu głównego, który identyfikuje ośrodek certyfikacji, który jest jednolity dla wszystkich podmiotów.
  • Skonfiguruj parę kluczy RSA i klucza prywatnego z atrybutami opisanymi w poniższej tabeli.
  • Skonfiguruj przy użyciu certyfikatu podmiotu wystawionego przez ośrodek certyfikacji. Klucz publiczny RSA musi być zawarty w certyfikacie podmiotu.
Uwaga: Można również używać certyfikatów samopodpisanych.

Homomorphic publiczne i prywatne klucze szyfrowania są generowane i dystrybuowane automatycznie i bezpiecznie wśród stron dla każdego eksperymentu. Tylko podmioty biorący udział w eksperymencie mają dostęp do klucza prywatnego wygenerowanego dla eksperymentu. W celu obsługi mechanizmu automatycznego generowania i dystrybucji, strony muszą być skonfigurowane za pomocą certyfikatów i kluczy RSA określonych wcześniej.

Wymagania klucza RSA

Tabela 1. Wymagania klucza RSA
Atrybut Wymaganie
Wielkość klucza 4096 bitów
Wykładnik publiczny 65537
Hasło Brak
Algorytm mieszający SHA256
Format pliku Pliki kluczy i certyfikatów muszą być w formacie "PEM"

Konfigurowanie agregatora (admin)

Tworząc stowarzyszony eksperyment edukacyjny, należy wykonać następujące czynności:

  1. Na karcie Konfiguracja Przełącz opcję "Włącz szyfrowanie homomorficzne".
  2. Dla opcji Specyfikacja sprzętuwybierz opcję mała lub nowsza. W zależności od zastosowanego poziomu szyfrowania, może być potrzebna większa specyfikacja sprzętu, aby zmieścić zużycie zasobów na potrzeby szyfrowania homomorficznego.
  3. Upewnij się, że podczas wybierania pliku modelu dla specyfikacji modeluprzesyłany jest niezaszyfrowany model początkowy.
  4. Wybierz opcję "Prosta średnia (zaszyfrowana)" dla opcji Metoda Fusion. Kliknij przycisk Dalej.
  5. Zaznacz pole wyboru Pokaż zaawansowane na karcie Zdefiniuj parametry hiperparametry .
  6. W polu Poziom szyfrowaniawybierz poziom szyfrowania.
    Wyższe poziomy szyfrowania zwiększają bezpieczeństwo i precyzję oraz wymagają większego zużycia zasobów (np. obliczeń, pamięci, przepustowości sieci). Wartością domyślną jest poziom szyfrowania 1.
    W poniższej tabeli można znaleźć opis poziomów szyfrowania:
Zwiększenie poziomu szyfrowania oraz bezpieczeństwo i precyzja
Poziom Usługi z dziedziny bezpieczeństwa Precyzja
1 Duża Dobrze
2 Duża Duża
3 Bardzo wysoki Dobrze
4 Bardzo wysoki Duża

Zabezpieczenia to siła szyfrowania, zwykle mierzona liczbą operacji, które musi wykonać napastnik w celu złamania szyfrowania.
Dokładność to precyzja wyników systemu szyfrowania. Wyższe poziomy dokładności redukują utratę dokładności modelu ze względu na szyfrowanie.

Łączenie się z agregatorem (party)

Poniższe kroki przedstawiają tylko konfigurację wymaganą do szyfrowania homomorficznego. Kurs krok po kroku dotyczący używania szyfrowania homomorficznego w uczeniu stowarzyszonym zawiera sekcja Przykład FHE.

Informacje na temat tworzenia ogólnego skryptu konektora podmiotu na całej trasie można znaleźć w sekcji Nawiązaliśmy połączenie z agregatorem (podmiot).

  1. Zainstaluj klienta Python z programem FHE za pomocą następującej komendy:
    pip install 'ibm_watson_machine_learning[fl-rt23.1-py3.10,fl-crypto]'

  2. Skonfiguruj podmiot w następujący sposób:

    party_config = {
        "local_training": {
            "info": {
                "crypto": {
                    "key_manager": {
                        "key_mgr_info": {
                            "distribution": {
                                "ca_cert_file_path": "path of the root certificate file identifying the certificate authority",
                                "my_cert_file_path": "path of the certificate file of the party issued by the certificate authority",
                                "asym_key_file_path": "path of the RSA key file of the party"
                                } 
                            }  
                        }  
                    }  
                }  
            }  
        }
    }
    
  3. Po skonfigurowaniu uruchom skrypt konektora podmiotu.

Zasoby dodatkowe

Temat nadrzędny: Nauka stowarzyszona

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more