Secure Face Matching Using Fully Homomorphic Encryption-2018:學習

本文學習論文“Secure Face Matching Using Fully Homomorphic Encryption-2018”和“基於全同態加密的人臉特徵密文認證系統-2020”,記錄筆記。

摘要

image-20220907150531081

  • 人臉識別技術的發展取決於特徵學習(representation learning)的進步。
  • 本文提出一個基於全同態加密的人臉識別方案,能保護用戶隱私,且能在加密域實現匹配的功能。
  • 常用的人臉庫((LFW, IJB-A, IJB-B, CASIA)。
  • 實驗結果,對於16KB大的512維的圖像匹配一次耗時0.01s,且控制在最低損失。
  • 【Sphereface: Deep hypersphere embedding for face recogni-tion】簡單理解爲,使用該技術從人臉圖像中提取特徵。

引言

  • 人臉識別是通過人臉特徵來確定身份的。

  • 深度學習技術提升了人臉識別的準確率。

  • 傳統的人臉識別流程:

    • 給定一張人臉圖像,然後提取特徵向量(高維)。
    • 在註冊階段,將特徵向量和對應的識別標籤(identity labels)存入數據庫。
    • 然後該數據庫用於比較人臉特徵,進而驗證身法。
  • 明文存儲的數據庫不安全,容易泄露,或者被重建。

  • 所以需要加密,而只有同態加密才能對密文計算。

  • 全同態加密提供加法和乘法計算,且對應的開源庫給出了擴展接口和最優的計算複雜度。

  • 本文使用全同態密碼算法實現人臉識別,(1)加密數據庫和要檢索的圖像特徵向量;(2)直接在加密域中匹配,且匹配的相似度計算,如歐氏距離或者預選相似度等,都可以分解爲加法和乘法運算。

  • 【Fully Private Non-interactive Face Verification-2013】中給出的全同態加密測試數據:加密一張512維的人臉特徵向量需要48.7MB,完成匹配需要12.8s。

    • 使用的全同態加密方案是GH11【Implementing Gentry’s Fully-Homomorphic Encryption Scheme-2011】。
  • 當前人臉識別大都是基於深度神經網絡,特徵提取使用CNN,本文使用的特徵提取模型是FaceNet和SphereFace

  • 本文貢獻:

    • 使用高效的全同態加密方案BFV,效率提升至,加密耗16.5MB,匹配耗0.6s。
    • 使用SIMD編碼,提升計算效率,提升至,加密耗16KB,匹配耗0.01s。
  • 名詞解釋:

    • probe,就是要被檢索的特徵(圖像)

相關工作

  • 【Fully private noninteractive face verification-2013】提出一個基於FHE的Gabor特徵的人臉驗證系統,該方案成本很高(內存爲380MB,每個匹配耗時100s)。
  • 該方案的成本爲內存66KB,每個匹配耗時0.01s。

方案

image-20220907212018947

  • 上圖就是人臉圖像提取特徵向量的過程。

    • 人臉檢測
    • 對齊
    • 歸一化
    • 特徵提取,嵌入函數的功能就是將一個高維歸一化的向量映射爲一個\(d\)維的特徵向量。
  • 傳統的人臉識別系統分爲:

    • 註冊,形成數據庫\(X=\left \{ x_1,...,x_n \right \},x_i\in R^d\)
    • 匹配,給定一個圖像,提取出特徵\(y\in R^d\),與數據庫中的向量匹配,得到的結果是一個分數,表示\(X\)\(Y\)之間的相似度。
    • 計算相似度:\(d({x}, {y})=1-\frac{{x}^{T} {y}}{\|{x}\|\|{y}\|}=1-\tilde{{x}}^{T} \tilde{{y}}=1-\sum_{i=1}^{d} \tilde{x}_{i} \tilde{y}_{i}\),其中\(\tilde{{x}}=\frac{{x}}{\|{x}\|}\),所以計算是由\(d\)次標量乘法和\(d\)次標量加法組成。
    • 標量乘(scalar multiplications),就是向量對應位置相乘。

框架

註冊

image-20220908092716669

  • 用戶產生公私鑰:\(pk,sk\),使用公鑰\(pk\)加密一個特徵向量\(x\),得到密文\(E(x)\),然後連同用戶身份(user identity)\(c\)一起上傳數據庫。
  • 每個用戶生成各自的公私鑰。

image-20220908092753538

匹配

image-20220908093228428

  • 給定一個要匹配的特徵向量\(y\),使用公鑰\(pk\)加密得到密文\(E(y)\),然後連同用戶身份標籤(user identity)\(c'\)一起上傳數據庫進行匹配。
  • 服務器在密文下計算出相似度\(E(d_1),...,E(d_n)\),並返回給客戶端。
  • 客戶端使用私鑰\(sk\)解密得到結果。

image-20220908093140928

  • 匹配時的用戶也產生自己的公私鑰對
  • 若與數據庫中使用的公鑰不同,需要服務器執行密鑰交換

BFV方案

image-20220908104858034

  • BFV是在整數多項式計算的,所以在加密前需要編碼。
  • \(w\)是分解整數的基,\(l=log_wq\)將整數\(q\)分解爲\(l\)部分。

image-20220908105700132

image-20220908105712896

  • \(d\)次密文乘*密文,\(d-1\)次密文+密文,1次密文+明文。

優化

  • 密文乘法計算導致計算速度慢,對於512維的人臉圖像特徵向量和128位的加密安全等級:
    • 加密一次需要16.5MB內存
    • 匹配一次需要0.7s
  • 所以需要下一步優化:
    • 在環上對人臉特徵編碼
    • 使用批處理技術,利用CRT將向量編碼爲一個明文多項式,以單個乘法同態實現多個數的同態乘法
    • 使用降維技術降低計算消耗

人臉特徵編碼

image-20220908111533723

image-20220908111545996

  • 環的選擇很重要。
  • 編碼方式:\(\operatorname{Encoding}(a)=\operatorname{sign}(a)\left(a_{n-1} x^{n-1}+\cdots+a_{1} x+a_{0}\right)\),其中\(a\)是特徵向量,編碼爲整數\(\left(a_{n-1} x^{n-1}+\cdots+a_{1} x+a_{0}\right)\)
  • \(\operatorname{sign}(a)\)是什麼?
  • 基數\(w\)在這裏起什麼作用?

批處理

image-20220908133006585

  • 批處理:將多個數編碼到多項式上,每次計算一次多項式就相當於對多個數同時計算。
  • 對於環\(R_t=Z[x]/(x^n+1)\),當\(t\)爲許多小素數的乘積時,即\(t=\prod_{i=1}^{k} p_{i}\),可利用CRT將環\(R_t\)進行分解。
  • 如何拆分,如何計算?

image-20220908133359698

  • 批處理優點是,可以單次多項式計算操作相當於\(k\)次整數計算。

  • 缺點是:無法訪問加密後向量中的各元素,也就無法求和。

  • 解決辦法:使用密文旋轉,思想來自【Fully homomorphic encryption with polylog overhead-2012】,即循環旋轉\(l=log_wq\)次並累加向量元素從而獲得加密向量元素之和。

  • 密文內積計算:

image-20220908140132854

  • 最後乘\((1,0,0,0)\)

特徵降維

image-20220908140523730

  • 降維方法:ISOMAP【A global geometric framework for nonlinear dimensionality reduction-2000】、LLE【Nonlinear dimensionality reduction by locally linear embedding-2000】、隨機映射(random projections)【Experiments with random projection-2000】等,本文使用的是主成成分分析法(Principal Component Analysis,PCA)

實驗

  • 數據集採用(LFW,IJB-A,IJB-B,CA-SIA)
  • 基於的深度神經網絡模型是FaceNet和SphereFace
  • 使用SEAL庫。

image-20220908160920872

  • 相比於【】相比,本方案可以提供128~192位的安全級別,和在小型人臉數據庫上能提供實時匹配。
  • 編碼精度:0.1,0.01,0.0025
  • 錯誤率:FAR,正確接受率:TAR
  • 對512 維的人臉特徵,每個加密模板僅需要16KB和匹配一對加密模板需要0.02s
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章