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 時的屬性,密文才能解開。
有部分人會將 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