日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

双线性映射(Bilinear Maps)实现(有限域、循环群)

發布時間:2023/12/31 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 双线性映射(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 ∈\inG, 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∈\inG生成的循環群,使得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)实现(有限域、循环群)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。