Protocol-Design
如果你必須實現 BGN 密碼系統,你會怎麼做?
如果你必須實現 BGN,你會怎麼做?
由於 Boneh、Goh 和 Nissim(又名BGN ),我正在尋找公鑰密碼系統的實現,或者至少有一些關於自己實現它的建議。我的目標是探索/學習/玩弄它的結構,並最終生成某種計時數據。
對於那些不熟悉 BGN 的人,它提供了明文的同態加法(類似於 Paillier 和 exp. Elgamal),但也提供了單個同態乘法。所以你可以做一些事情,比如同態評估二次函式(有一些界限,請注意),甚至可以在沒有隨機預言的情況下進行二進制範圍證明。因此,它似乎在一系列加密協議中非常有用,但我似乎找不到現有的實現,我似乎也無法解釋為什麼它還沒有完成。
儘管如此,這並不是您可以在 Mathematica 中完成的事情(向@PulpSpy 道歉)。
斯坦福大學的基於配對的加密庫 ( PBC ) 似乎是一個可能的起點,但我對橢圓曲線或配對的了解不夠,無法將它們的預設曲線修改為論文中建議的曲線。例如,PBC 中預設曲線的階數基於 Solinas 素數,而 BGN 中基礎曲線的階數是函式依賴於大半素數的素數 $ n=q_1q_2 $ 使得雙線性群的階數為 $ n $ . 關鍵是,要讓 PBC 為 BGN 實施工作可能需要做一些事情。
也許 CHARM 會是一個更好的選擇。有什麼想法嗎?
這是一篇論文,展示瞭如何實現具有素數階群的 BGN 密碼系統。您可以使用 PBC 或其他配對庫之一來實現密碼系統。
“將基於配對的密碼系統從復合階組轉換為素階組”
David Mandell Freeman
Eurocrypt 2010
- http://theory.stanford.edu/~dfreeman/papers/subgroups.pdf
- http://theory.stanford.edu/~dfreeman/talks/eurocrypt10.pdf
看一下演講的第 13 張幻燈片——BGN 範例看起來相當簡單。下面的幻燈片表明,在更高的安全級別上,素數 BGN 也會更有效。
這可能是我將如何實現它。