Key-Size

如何計算 CP-ABE 方案的密鑰大小

  • February 19, 2016

如何計算 CP-ABE 方案中密鑰的實際大小。例如,我有這個 GSWV 方案:

Fuchun Guo、Willy Susilo、Duncan Wong、Vijay VaradharajanCP-ABE,具有用於輕量級設備的恆定大小鍵

在這兩篇論文中,我都有 $ \mathbb{G}_1=160 $ 位和 $ \mathbb{G}_2=512 $ 位,解密密鑰的長度為: $ 2\mathbb{G} $ .

本文中,key的大小為: $ |S_K|=|\mathbb{G}_1|+|\mathbb{G}_2|=2\cdot 160+2\cdot 512=1344 $ 位 $ 80 $ 位安全。( $ \mathbb{G}_1 $ 和 $ \mathbb{G}_2 $ 是橢圓曲線雙線性群)。

在這篇論文(原始論文)中,同樣的關鍵是: $ |S_{K_\mathbb{A}}|=|\mathbb{G}_1|+|\mathbb{G}_2|=672 $ 位。

我很困惑。

我不明白,如果我只有,如何正確計算密鑰的大小 $ \mathbb{G}_1 $ 和 $ \mathbb{G}_2 $ ?

在這種情況下如何計算密鑰的大小: $ n\mathbb{G} $ ?

如果我必須計算,我很困惑 $ n\mathbb{G}=|\mathbb{G}_1|+|\mathbb{G}_2| $ 或者 $ n\mathbb{G}=n\cdot|\mathbb{G}_1|+n\cdot|\mathbb{G}_2| $ .

不同的研究人員對橢圓曲線雙線性配對組使用不同的符號。對於對稱配對,這可能如下所示:

  • $ e: ; \mathbb{G} \times \mathbb{G} \rightarrow \mathbb{G}_T $
  • $ e: ; \mathbb{G}_1 \times \mathbb{G}_1 \rightarrow \mathbb{G}_T $
  • $ e: ; \mathbb{G}_1 \times \mathbb{G}_1 \rightarrow \mathbb{G}_2 $
  • $ e: ; \mathbb{G}_1 \times \mathbb{G}_2 \rightarrow \mathbb{G}_T $ (和 $ \mathbb{G}_1 = \mathbb{G}_2 $ 對於對稱和 $ \mathbb{G}_1 \neq \mathbb{G}_2 $ 不對稱)

所有對稱變體的含義完全相同,只是符號不同。

現在,如果一個方案是由非對稱配對構成的,那麼除了可能的安全問題和啟用對它的攻擊之外,沒有什麼能阻止您使用對稱配對​​實例化該方案。所以,理論上我們可以計算出使用者密鑰的大小為 $ |SK| = 2|\mathbb{G}| = |\mathbb{G}|+|\mathbb{G}| $ 代替 $ |SK| = |\mathbb{G}_1|+|\mathbb{G}_2| $ . 現在您只需要使用一組而不是兩組,這是一種更緊湊的表示法,但並不完全正確。

您引用的兩篇論文的作者可能選擇了這種表示法,以便將所有內容都包含在一個表格中,因為頁面寬度有限並且他們不能嚴重改變字型大小,因為他們需要遵循會議的模板/雜誌。


現在,您的問題是,為什麼 ODG 方案的作者計算 GSWV 方案的密鑰大小的方式與 GSWV 方案的作者自己不同。

讓我們回顧一下橢圓曲線組。我們有一條橢圓曲線,例如 $ y^2 = x^3+a\cdot x+b $ 在哪裡 $ a $ 和 $ b $ 是曲線參數,在一些(素數)場上的二維空間中定義。上式成立的曲線上的每個點都由兩個元素表示, $ x $ 和 $ y $ ,來自基礎欄位。

如果該欄位是 160 位素數階欄位,則 $ \mathbb{G}_1 $ 可以序列化為 320 位作為串聯 $ x $ 和 $ y $ . 但我們不一定要儲存 $ y $ ,因為如果我們知道曲線,那麼我們可以簡單地計算 $ y $ 從 $ x $ :

$$ y = \sqrt{(x^2+a)\cdot x + b} $$ 來自jPBC的程式碼範例:

protected void setPointFromX() {
   infFlag = 0;
   y.set(x.duplicate().square().add(field.a).mul(x).add(field.b).sqrt());
}

因此,您可以將序列化曲線元素的大小減少一半,但是您需要進行額外的計算才能從 $ x $ 為了使用它。這是一種妥協。GPSW 的作者選擇優化尺寸,ODG 的作者選擇優化速度(或者只是讓他們的方案看起來不錯)。

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