同態(tài)加密在聯(lián)邦學習中的應用
聯(lián)邦學習是指多個參與方可在保證各自數(shù)據(jù)隱私的同時實現(xiàn)聯(lián)合機器學習建模,即在不獲取對方原始數(shù)據(jù)的情況下利用對方數(shù)據(jù)提升自身模型的效果。想要實現(xiàn)這種構想,就必須要使用到相應的加密技術,而同態(tài)加密技術就是其中之一。
應用原因
在聯(lián)邦學習中,多方聯(lián)合訓練模型一般需要交換中間結果,如果直接發(fā)送明文的結果可能會有隱私泄露風險。
在這種場景下,同態(tài)加密就可以發(fā)揮很重要的作用。多方直接將中間結果用同態(tài)加密算法進行加密,然后發(fā)送給第三方進行聚合,再將聚合的結果返回給所有參與者,不僅保證了中間結果沒有泄露,還完成了訓練任務。
同態(tài)加密主要用于聯(lián)合建模過程中的參數(shù)交互計算過程,實現(xiàn)預測模型的聯(lián)合確立。目前,在聯(lián)邦學習場景中使用較多同態(tài)加密算法為Paillier加法半同態(tài)加密算法。

應用流程
在使用同態(tài)加密的聯(lián)邦學習方案中,一般包含參與方A、參與方B、協(xié)作方C三種角色,參與方A和參與方B為數(shù)據(jù)提供方,而參與方C負責進行密鑰分發(fā)和匯總計算,有時協(xié)作方C也可由兩個參與方之一扮演。
由于加法同態(tài)加密無法實現(xiàn)任意形式的計算,在進行聯(lián)合建模時需要事先將擬聯(lián)合計算的計算式近似轉換為加法形式,并確定協(xié)議的具體流程。
聯(lián)合模型的加密訓練過程一般包含以下步驟:
- 協(xié)作方C生成同態(tài)加密公私鑰對,并向參與方A和B分發(fā)公鑰;
- A和B以同態(tài)密文的形式交互用于計算的中間結果;
- A和B將各自的計算結果匯總給C,C進行匯總計算,并對結果進行解密;
- C將解密后的結果返回給A和B,雙方根據(jù)結果更新各自的模型參數(shù)。

特殊使用場景
在一些基于半同態(tài)加密的聯(lián)邦學習特定方案中,也可無需協(xié)作方C進行模型匯總,參與雙方各自形成一個子模型,在后續(xù)的聯(lián)合預測的過程中需要進行參數(shù)交互。
除以上使用單一密鑰的方法外,目前還存在無需協(xié)作者C的聯(lián)合建模方案,參與計算的兩方各掌握一對公私鑰,但該方案的復雜程度較大,在性能方面不如上述方案。
此外,學術界還提出了多密鑰全同態(tài)加密方案,支持在多方使用不同密鑰加密的密文之間進行同態(tài)計算,但該類方法目前還處于理論階段。

優(yōu)勢與劣勢
同態(tài)加密在聯(lián)邦學習場景中的應用大多用于聯(lián)合建模過程中的參數(shù)交互過程,避免泄露原始數(shù)據(jù)和直接傳輸明文參數(shù),可在一定程度上同時解決數(shù)據(jù)融合計算和數(shù)據(jù)隱私保護問題。但是,目前基于加法半同態(tài)加密的解決方案仍存在一定的局限性,包括精度損失、交互開銷大、公平性不足等問題。
免責聲明:素材源于網(wǎng)絡,如有侵權,請聯(lián)系刪稿。










