如何在謂詞加密和內積中編碼二元多項式?
從論文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) $ .