L'apprendimento federato supporta la crittografia omorfa come misura aggiuntiva di sicurezza per i dati di addestramento federati. La crittografia homomorfa è una forma di crittografia a chiave pubblica che abilita i calcoli sui dati crittografati senza prima decrittografarli, il che significa che i dati possono essere utilizzati nella modellazione senza esporli al rischio di scoperta.
Con la crittografia omomorfa, i risultati dei calcoli rimangono in forma crittografata e, quando decrittografati, risultano in un output che è lo stesso dell'output prodotto con i calcoli eseguiti su dati non crittografati. Utilizza una chiave pubblica per la crittografia e una chiave privata per la decrittografia.
Come funziona con Federated Learning
La crittografia homomorfa è un metodo di crittografia facoltativo per aggiungere ulteriore sicurezza e privacy a un esperimento di apprendimento federato. Quando la crittografia omorfa viene applicata in un esperimento di apprendimento federato, le parti inviano i loro aggiornamenti del modello crittografati omorfologicamente all'aggregatore. L'aggregatore non ha la chiave privata e può visualizzare solo gli aggiornamenti del modello codificati in modo omorfano. Ad esempio, l'aggregatore non può eseguire il reverse engineering degli aggiornamenti del modello per rilevare informazioni sui dati di addestramento delle parti. L'aggregatore fonde gli aggiornamenti del modello nel formato codificato che risulta in un modello aggregato codificato. Quindi l'aggregatore invia il modello aggregato crittografato alle parti partecipanti che possono utilizzare la loro chiave privata per la decrittografia e continuare con il prossimo ciclo di formazione. Solo le parti partecipanti possono decodificare i dati del modello.
Framework e metodi di fusione supportati
Fully Homomorphic Encryption (FHE) supporta il metodo di fusione della media semplice per questi framework di modelli:
- Tensorflow
- Pytorch
- Classificazione Scikit - learn
- Regressione Scikit - learn
Prima di iniziare
Per iniziare a usare la codifica omorfa, assicurati che il tuo esperimento soddisfi i seguenti requisiti:
La specifica hardware deve essere piccola. A seconda del livello di crittografia che applichi, potresti aver bisogno di una specifica hardware più grande per soddisfare il consumo di risorse causato da una crittografia dei dati più potente. Consultare la tabella del livello di codifica in Configurazione dell'aggregatore. - La specifica del software è
fl-rt23.1-py3.10
.FHE è supportato nel client Python versione 1.0.263 o successiva. Tutte le parti devono utilizzare la stessa versione client Python .
Requisiti per le parti
Ogni parte deve:
- Eseguire su un sistema x86 Linux .
- Configurare con un certificato root che identifica un'autorità di certificazione uniforme per tutte le parti.
- Configurare una coppia di chiave pubblica e privata RSA con gli attributi descritti nella tabella seguente.
- Configurare con un certificato della parte emesso dalla CA (Certificate Authority). La chiave pubblica RSA deve essere inclusa nel certificato della parte.
Le chiavi di crittografia pubbliche e private vengono generate e distribuite automaticamente e in modo sicuro tra le parti per ogni esperimento. Solo le parti che partecipano a un esperimento hanno accesso alla chiave privata generata per l'esperimento. Per supportare il meccanismo di generazione e distribuzione automatica, le parti devono essere configurate con i certificati e le chiavi RSA specificati precedentemente.
Requisiti chiave RSA
Attributo | Requisiti |
---|---|
Dimensioni chiave | 4096 bit |
Esponente pubblico | 65537 |
Password | Nessuna |
Algoritmo hash | SHA256 |
Formato file | I file chiave e certificato devono essere in formato "PEM" |
Configurazione dell'aggregatore (admin)
Quando si crea un esperimento di apprendimento federato, attenersi alla seguente procedura:
- Nella scheda Configura , attivare / disattivare "Abilita crittografia omorfa".
- Scegliere piccolo o superiore per Specifica hardware. A seconda del livello di crittografia che applichi, potresti aver bisogno di una specifica hardware più grande per soddisfare il consumo di risorse per la crittografia omorfa.
- Assicurarsi di caricare un modello iniziale non codificato quando si seleziona il file del modello per Specifica del modello.
- Selezionare "Simple average (encrypted)" per Metodo di fusione. Fare clic su Avanti.
- Selezionare Mostra avanzate nella scheda Definisci iperparametri .
- Selezionare il livello di codifica in Livello di codifica.
I livelli di crittografia più elevati aumentano la sicurezza e la precisione e richiedono un maggiore consumo di risorse (ad esempio, calcolo, memoria, larghezza di banda della rete). Il valore predefinito è il livello di codifica 1.
Consultare la seguente tabella per una descrizione dei livelli di crittografia:
Livello | Sicurezza | Precisione |
---|---|---|
1 | Alto | Buono |
2 | Alto | Alto |
3 | Molto alta | Buono |
4 | Molto alta | Alto |
Sicurezza è il punto di forza della crittografia, in genere misurato dal numero di operazioni che un aggressore deve eseguire per interrompere la crittografia.
Precisione è la precisione dei risultati del sistema di codifica. Livelli di precisione più elevati riducono la perdita di precisione del modello a causa della crittografia.
Connessione all'aggregatore (parte)
I seguenti passi mostrano solo la configurazione necessaria per la crittografia omorfa. Per un'esercitazione dettagliata sull'utilizzo della codifica omorfa in Federated Learning, vedi Esempio FHE.
Per informazioni su come creare uno script del connettore di parte end-to-end generale, fare riferimento a Connetti all'aggregatore (parte).
Installare il client Python con FHE con il seguente comando:
pip install 'ibm_watsonx_ai[fl-rt23.1-py3.10,fl-crypto]'
Configurare la parte come segue:
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" } } } } } } } }
Eseguire lo script del connettore di parte dopo la configurazione.
Ulteriori risorse
- La crittografia homomorfa può essere applicata tramite API. Consultare Crea un nuovo training WML> Richiesta> federated_learning> [
fusion_type and crypto
]
Argomento principale: Apprendimento federato