PBC 庫中的求冪
我需要計算一個函式 $ h^l $ ,其中 h 是 G2 的元素,l 是有理數。如何使用 PBC 庫來做到這一點?
我已將其轉換
h
為元素G2
據我所知,對於求冪,PBC 有兩個功能:
element_pow_zn, and element_pow_mpz
當兩個操作數都是類型時,使用第一個函式
element_t
。第二個函式將在 power 為 type 時使用mpz_t
。我在 pbc 手冊中讀到該
mpz_t
類型用於 GMP 中的整數,而mpq_t
用於有理數。我可以使用 PBC 中的任何函式來獲取所需的冪嗎?如果是,我將如何聲明元素?更新
這樣的初始化工作:
mpz_t a, b, l; element_t ea, eb, el, bi, t1, res; ....after computing a , b, I can use element_set_mpz(ea, a); . . element_invert(bi, b); element_pow_zn(t1, h, a); element_pow_zn(res, t1, bi);
我不認為 $ h^l $ 其中 l 是浮點數是有限組中定義明確的操作,無論您想將該組用於什麼上下文。群是具有二元運算的一組元素 G $ \cdot $ (乘法)定義,通常表示為(G, $ \cdot $ ) 滿足四個性質。您可以在此處找到更多資訊:http: //mathworld.wolfram.com/Group.html。
然後,取冪被定義為在一個群元素上重複乘法一定次數。例如, $ h^n=h\cdot h\cdot h \cdot … \cdot h $ (重複 $ n $ 次)。因此,您應該能夠看到,例如重複乘法 3.1415956 次的定義並不明確。
具體來說,對於配對,G2 是扭曲曲線上的組。在該組中,定義了一個操作。通常,這種操作稱為點加法。但是,在PBC中,如果您查看文件,則說“加法和乘法函式在環和域中執行加法和乘法運算。對於橢圓曲線上的點組,例如與關聯的G1和G2組配對,加法和乘法都表示組運算(同樣0和1都表示單位元素)。建議程序選擇一個約定並堅持下去,以免混淆。(http://crypto.stanford.edu/pbc/manual/ch04s04.html)。
所以,你所說的操作沒有很好的定義。