Translation not up to date
Birleşik öğrenme, birleşik eğitim verileri için ek bir güvenlik ölçüsü olarak homomorfik şifrelemeyi destekler. Homomorfik şifreleme, şifrelenmiş veriler üzerinde ilk önce şifre çözmeden hesaplamalar yapılmasını sağlayan bir açık anahtar şifrelemesi biçimidir, bu da verilerin keşif riskine maruz kalmadan modellemede kullanılabileceği anlamına gelir.
Homomorfik şifreleme ile, hesaplamaların sonuçları şifrelenmiş biçimde kalır ve şifre çözüldüğünde, şifrelenmemiş veriler üzerinde gerçekleştirilen hesaplamalarla üretilen çıktıyla aynı çıktı elde edilir. Şifreleme için bir genel anahtar ve şifre çözme için bir özel anahtar kullanır.
Birleşik Öğrenimle nasıl çalışır?
Homomorfik şifreleme, Birleşik Öğrenme deneyine ek güvenlik ve gizlilik eklemek için isteğe bağlı bir şifreleme yöntemidir. Birleşik Öğrenme deneyinde homomorfik şifreleme uygulandığında, taraflar homomorfik olarak şifrelenmiş model güncellemelerini toplayıcıya gönderir. Toplayıcı özel anahtara sahip değildir ve yalnızca homomorf olarak şifrelenmiş model güncellemelerini görebilir. Örneğin, toplayıcı, tarafların eğitim verileriyle ilgili bilgileri keşfetmek için model güncellemelerini tersine düzenleyemez. Toplayıcı, model güncellemelerini şifrelenmiş biçiminde birleştirir ve bu da şifrelenmiş bir toplu modelle sonuçlanır. Daha sonra toplayıcı, şifrelenmiş toplu modeli, şifre çözme için özel anahtarını kullanabilen ve sonraki eğitim turuna devam edebilen katılımcı taraflara gönderir. Model verilerinin şifresini yalnızca katılımcı taraflar çözebilir.
Desteklenen çerçeveler ve birleştirme yöntemleri
Fully Homomorfik Şifreleme (FHE), bu model çerçeveleri için basit ortalama füzyon yöntemini destekler:
- Tensorflow
- Pytorch.
- Scikit-öğrenme sınıflandırması
- Scikit-öğrenme regresyonu
Başlamadan önce
Homomorfik şifrelemeyi kullanmaya başlamak için denemenizin aşağıdaki gereksinimleri karşıladığından emin olun:
Donanım belirtimi en az küçükolmalıdır. Uyguladığınız şifreleme düzeyine bağlı olarak, daha güçlü veri şifrelemesinin neden olduğu kaynak tüketimini karşılamak için daha büyük bir donanım belirtimine gereksinim duyabilirsiniz. Toplayıcıyı yapılandırmaiçindeki şifreleme düzeyi tablosuna bakın.-Yazılım belirtimi
fl-rt22.2-py3.10
.FHE, Python istemci sürümü 1.0.263 ya da sonraki sürümlerinde desteklenir. Tüm taraflar aynı Python istemci sürümünü kullanmalıdır.
Taraflar için gereksinimler
Taraflardan her birinin aşağıdakileri bilmesi gerekir:
- Linux x86 sisteminde çalıştırın.
- Tüm taraflar için aynı olan bir sertifika yetkilisini tanımlayan bir kök sertifikayla yapılandırın.
- Aşağıdaki çizelgede açıklanan özniteliklerle bir RSA genel ve özel anahtar çifti yapılandırın.
- Sertifika yetkilisi tarafından verilen tarafın sertifikasıyla yapılandırın. RSA ortak anahtarı, tarafın sertifikasına dahil edilmelidir.
Homomorfik genel ve özel şifreleme anahtarları otomatik olarak üretilir ve her deney için taraflar arasında güvenli bir şekilde dağıtılır. Sadece bir deneye katılan taraflar deney için oluşturulan özel anahtara erişebilir. Otomatik oluşturma ve dağıtım mekanizmasını desteklemek için, tarafların önceden belirtilen sertifikalarla ve RSA anahtarlarıyla yapılandırılması gerekir.
RSA anahtar gereksinimleri
Öznitelik | Gereksinim |
---|---|
Anahtar boyutu | 4096 bit |
Genel üs | 65537 |
Parola | Yok |
Hash algoritması | SHA256 |
Dosya biçimi | Anahtar ve sertifika dosyaları "PEM" biçiminde olmalıdır |
Toplayıcıyı (admin) yapılandırma
Birleşik Öğrenim deneyi yaratırken aşağıdaki adımları izleyin:
- Configure (Yapılandır) sekmesinde "Enable homomorphic encryption" (Türdeş şifrelemeyi etkinleştir) seçeneğini açın/kapatın.
- Donanım belirtimiiçin small (küçük) ya da üstü seçeneğini belirleyin. Uyguladığınız şifreleme düzeyine bağlı olarak, homomorfik şifreleme için kaynak tüketimini karşılamak üzere daha büyük bir donanım belirtimine gereksinim duyabilirsiniz.
- Model belirtimiiçin model dosyasını seçerken şifrelenmemiş bir ilk modeli karşıya yüklediğinizden emin olun.
- Fusion yöntemiiçin "Basit ortalama (şifreli)" seçeneğini belirleyin. İleri'yi tıklatın.
- Define hyperparameters (Hiperparametreleri tanımla) sekmesinde Show advanced (Gelişmiş parametreleri göster) seçeneğini işaretleyin.
- Şifreleme düzeyindeşifreleme düzeyini seçin.
Yüksek şifreleme düzeyleri güvenliği ve duyarlığı artırır ve daha yüksek kaynak tüketimi gerektirir (örneğin, hesaplama, bellek, ağ bant genişliği). Varsayılan değer, şifreleme düzeyi 1 'dir.
Şifreleme düzeylerinin açıklaması için aşağıdaki çizelgeye bakın:
Seviye | Durumu | Hassasiyet |
---|---|---|
1 | Yüksek | İyi |
2 | Yüksek | Yüksek |
3 | Çok yüksek | İyi |
4 | Çok yüksek | Yüksek |
Güvenlik , genellikle bir saldırganın şifrelemeyi kırmak için gerçekleştirmesi gereken işlem sayısıyla ölçülen şifreleme gücüdür.
Duyarlık , şifreleme sisteminin sonuçlarının kesinliği. Daha yüksek hassasiyet düzeyleri, şifreleme nedeniyle modelin doğruluk kaybını azaltır.
Toplayıcıya (taraf) bağlanılıyor
Aşağıdaki adımlarda yalnızca homomorfik şifreleme için gereken yapılandırma gösterilir. Birleşik Öğrenimde homomorfik şifrelemenin kullanılmasına ilişkin adım adım bir öğretici program için bkz. FHE örneği.
Genel bir uçtan uca taraf bağlayıcısı komut dosyasının nasıl oluşturulacağını görmek için bkz. Toplayıcıya bağlanma (taraf).
Aşağıdaki komutla Python istemcisini FHE ile kurun:
pip install 'ibm_watson_machine_learning[fl-rt23.1-py3.10,fl-crypto]'
Tarafı aşağıdaki gibi yapılandırın:
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" } } } } } } } }
Yapılandırmadan sonra taraf bağlayıcısı komut dosyasını çalıştırın.
Ek kaynaklar
Üst konu: Birleşik Öğrenim