Predicate-Encryption

如何在謂詞加密和內積中編碼二元多項式?

  • June 14, 2017

從論文Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products中,密鑰的向量是從多項式生成的 $ p(x) $ . 我了解單變數多項式,但是雙變數多項式的向量是什麼樣的?例如:

一元多項式

$$ p(x) = (x - a) \cdot (x - b) = x^2 -(a+b)x + ab $$

  • 秘密矢量 $ p = (1, -(a+b), ab) $
  • 向量 $ w $ (帶屬性 $ a $ ) = $ (a^2, a, 1) $ (我不確定我是否理解正確)
  • 內產品: $ \left<p,w\right> = a^2 - a^2 - ab + ab = 0 $

雙變數多項式

$$ p(x) = (x_1 - a) \cdot (x_2 - b) $$

  • 秘密矢量 $ p = ? $
  • 向量 $ w $ 帶屬性 $ a = ? $

非常感謝。

通常,對多項式進行編碼 $ p(x) = a_n x^n + a_{n-1} x^{n-1} + … a_1 x + a_0 $ ,

$$ \mathbb{p} = (a_n, a_{n-1}, … a_1, a_0) $$和$$ \mathbb{w} = (x^n, x^{n-1}, … x, 1) $$ 所以對於你的單變數情況, $ \mathbb{w} = (x^2, x, 1) $ . 你可以看到 $ \left<\mathbb{p}, \mathbb{w} \right> = p(x) $ ,然後根據需要替換屬性。所以我認為你的單變數案例是正確的。

對於雙變數情況,它是相同的,但具有混合冪。你會有類似的條款 $ x_1^i x_2^j $ , 在哪裡 $ i+j \leq n $ . 所以在一般情況下 $ n=2 $ 有兩個變數/屬性,你有:

$$ p(x_1, x_2) = a_{20}x_1^2 + a_{11}x_1 x_2 + a_{02} x_2^2 + a_{10}x_1 + a_{01}x_2 + a_{00} $$ 在您的情況下,您有:

$$ p(x_1, x_2) = x_1 x_2 - x_1 b - x_2 a + ab $$ 所以 $ a_{20} = a_{02} = 0 $ , $ a_{11} = 1 $ , $ a_{10} = -b $ , $ a_{01} = -a $ , 和 $ a_{00} = ab $ . 最後,

$$ \mathbb{p} = (0,1,0,-b,-a,ab) $$ 和

$$ \mathbb{w} = (x_1^2, x_1 x_2, x_2^2, x_1, x_2, 1) $$ 再次,您可以看到 $ \left<\mathbb{p}, \mathbb{w} \right> = p(x_1, x_2) $ .

引用自:https://crypto.stackexchange.com/questions/48263