Thursday, December 19, 2019

Functional Encryption 初探

近年來,Functional Encryption 越來越引起大眾的關注。不同的 Libraries 也開始以 Functional Encryption 作為構思藍本,包括 CiFErGoFE 等等。事實上,FE 的概念,早在 2005 年左右就已經出現,而 Dan Boneh 在 2010 年發布的一篇論文「Functional Encryption: Definitions and Challenges」[1] 則正式地對這個詞語下了一些定義。

Functional Encryption 的定義,主要包括以下數項 [2]:
  • 它是 Public Key Encryption 的一種(也就是非對稱加密)
  • 「滿足既定條件,就能知道內容」
    • 在傳統的 Public Key Encryption 中,「條件」只有一個,就是持有私鑰。
      而在 Functional Encryption 中, 加密者持有的,並非一對一的公鑰。
      而解密者即使持有的私鑰,也未必等於可以解開內容。

      例如 IBE 中,加密者可以根據受眾的名稱加密,
      而解密者只能解出以自己的名稱加密的內容。
      每個解密者會有不同的私鑰,但加密者卻只需要持有一套公鑰。
  • 整個加密系統可以分成四個部分:Setup / Keygen / Encrypt / Decrypt
    • Setup 是指由系統管理員產生 Public Key Parameters 及 Master Key。
      Public Key Parameters 可以公開,但 Master Key 只有系統管理員知道。
    • Keygen(或者稱為 Extract)是指使用者向系統管理員索取 Secret Key。
      管理員會按著使用者的名稱、身分等不同屬性,用 Master Key 產生一條獨特的 Secret Key 給用家。
    • Encrypt 是指加密,運用 Public Key Parameters 加上不同的屬性來加密內容。
    • Decrypt 是指解密,以私鑰來解開內容。
      只有當 Secret Key 符合 Encrypt 時的屬性,密文才能解開。
典型例子:包括 IBE,ABE 及 CP-ABE 等。

有部分人會將 FE 跟 Fully Homomorphic Encryption (FHE) 混為一談 [3] 。
事實上,兩者不互相衝突,技術上也可以同時存在,只是學者們仍未提出具體的演算法。

---
參考:

[1]: Functional Encryption: Definitions and Challenges - https://eprint.iacr.org/2010/543.pdf
[2]: Functional Encryption - http://cryptowiki.net/index.php?title=Functional_encryption
[3]: Forget Homomorphic Encryption, Here Comes Functional Encryption - https://research.kudelskisecurity.com/2019/11/25/forget-homomorphic-encryption-here-comes-functional-encryption/

No comments:

Post a Comment