双线性映射(Bilinear Maps)实现(有限域、循环群)
提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
文章目錄
- 前言
- 一、前置知識
- 1.域
- 1.1有限域
- 2.群
- 2.1 群
- 2.2 循環群
- 二、什么是雙線性映射?
- 三、驗證
- 1.導包
- 2.實現代碼
- 3.運行結果
前言
對于學習雙線性映射知識過程中的一些理解
一、前置知識
如果對這部分知識比較了解可略過
1.域
域中元素進行加法、減法、乘法、除法之后運算的結果依然在域內
ex: 有理數集合,實數集合 反例:整數集合
1.1有限域
域F只包含有限個元素
階:有限域中元素的個數稱為有限域的階;每個有限域的階必為素數的冪,即有限域的階可表示為pnp^npn(p為素數,n是正整數),記為GF(pnp^npn)
2.群
2.1 群
群G有四個特性(設該群為乘法群)
1.封閉性,群中元素進行乘法運算后的結果依然在群中
2.結合律,?\forall?a,b,c ∈\in∈G, a×\times×(b×\times×c) = (a×\times×b)×\times×c
3.存在單位元(幺元) ?\exists?e ∈\in∈ G,?\forall?a ∈\in∈ G, a×\times×e = e×\times×a = e (加法的單位元是0,乘法的單位元是1)
4.任意元素都存在逆元 ?\exists?e ∈\in∈ G, ?\forall?a ∈\in∈ G, ?\exists?a?1a^{-1}a?1∈\in∈ G , a×\times×a?1a^{-1}a?1 = a?1a^{-1}a?1×\times×a = e
2.2 循環群
循環群中所有的元素都是由一個元素生成,也就是所有的元素都是形如gng^ngn = g?\cdot?g?\cdot? ?\cdot??\cdot??\cdot? ?\cdot?g(n個g),n為任意整數。這個生成所有元素的元素g稱為生成元
循環群的階:設G是由g∈\in∈G生成的循環群,使得gn=eg^n=egn=e成立的最小正整數n稱為群G的階,記作|G|=n
如果|G|=n,則gng^ngn=e(單位元),群G為有限循環群
G={ggg,g2g^2g2,g3g^3g3,?\cdot??\cdot??\cdot?,gn=eg^n=egn=e}
二、什么是雙線性映射?
雙線性映射有三個特性:
1、雙線性, 即 ?\forall?u,vu,vu,v ∈\in∈ G,a,ba,ba,b ∈\in∈ ZpZ_pZp? , e(ua,vbu^a,v^bua,vb) = e(u,v)abu,v)^{ab}u,v)ab
2、非退化性, e(g,g)e(g,g)e(g,g) ≠\neq?= 1
3、可計算性,存在有效的算法實現該映射
三、驗證
1.導包
導入JPBC相關jar包
2.實現代碼
import it.unisa.dia.gas.jpbc.Element; import it.unisa.dia.gas.jpbc.Field; import it.unisa.dia.gas.jpbc.Pairing; import it.unisa.dia.gas.plaf.jpbc.pairing.PairingFactory;public class JPBCDemo {public static void main(String[] args) {Pairing bp = PairingFactory.getPairing("a.properties");Field Zr = bp.getZr();Field G1 = bp.getG1();Field G2 = bp.getG2();Element g1 = G1.newRandomElement();Element g2 = G2.newRandomElement();Element a = Zr.newRandomElement();Element b = Zr.newRandomElement();Element g_a = g1.duplicate().powZn(a);Element g_b = g2.duplicate().powZn(b);Element egg_ab = bp.pairing(g_a, g_b);Element egg = bp.pairing(g1, g2);Element ab = a.duplicate().mul(b);Element egg_ab_p = egg. duplicate().powZn(ab);if (egg_ab .isEqual(egg_ab_p))System.out.println("Yes");elseSystem.out.println("No");} }3.運行結果
總結
以上是生活随笔為你收集整理的双线性映射(Bilinear Maps)实现(有限域、循环群)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自由曲面透镜设计matlab,led自由
- 下一篇: 什么是双线性映射(Bilinear Ma