JPBC库只使用椭圆曲线群,不使用双线性性质。找单位元,逆元等

JPBC库是一个专注于椭圆曲线数学操作的库,尤其适用于不需要双线性性质的场景。本文档将介绍如何在JPBC中找到椭圆曲线上的生成元、单位元、逆元,以及执行加法和乘法操作。由于相关资源稀缺,此内容为原创,详细解析了椭圆曲线群和整数群的操作,并强调在素数阶群中,除了单位元,所有元素都是生成元。
摘要由CSDN通过智能技术生成

JPBC库是一个功能很强大的数学库,用于生成椭圆曲线,双线性等,但网上参考资料很少,重复度极高,该分栏用于安装,JPBC参数解释,生成椭圆曲线群,整数群(不用双线性性质),双线性映射教学。内容原创,禁止任何形式转载!

下面代码给出了椭圆曲线上找生成元,单位元,逆元,加法,乘法方法:

public class csdn {
//coder:CSDN USER ID:qq_41359358 最帅小朋友

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Pairing bp=PairingFactory.getPairing("a.properties");	
		Field G1=bp.getG1();//生成椭圆曲线群	
		BigInteger r=G1.getOrder();//群的阶
		System.out.println("order:"+r);
		Element z=G1.newRandomElement();//取群中随机元素
		Element fivez=z.duplicate().pow(new BigInteger("5"));//5z
		System.out.println("5z:"+fivez);
		Element fourz=z.duplicate().pow(new BigInteger("4"));
		System.out.println("4z:"+fourz);
		Element addz=fourz.duplicate().mul(z);//4z+z
		System.out.println("addz:"+addz);
		Element s=G1.newRandomElement();//取群中生成元
		System.out.println("s:"+s);
		Element one2=s.duplicate().pow(r);
		System.out.println("one2:"+one2);
		Element rev=s.duplicate().invert();//求逆元
		System.out.println("rev:"+rev);
		Element one3=rev.duplicate().mul(s.duplicate());//p+p逆=单位元
		System.out.println("one3:"+one3);
		
	}

}

往右滑动看点的0,1.上一篇讲了0是生成元,1是单位元。加法群乘法和加法的定义,忘了就去看上一篇。

order:730750818665451621361119245571504901405976559617
5z:524949462554941259231534068226031713403901496733675164019401169035506568365099187744726318910057654353122289567046127213239382489373481396320444664670316,1490253877881770551962175144436454541398836786587327513923615258957833947605073002530916701058674982118935449527118731127737204672226099340981814061707571,0
4z:2718626087880419888588947667143999388139144403835371143727498365387300767538945366428285209531922882739376779808641616988507262626834318464693990064826721,5288327707695475860408195605657788250153644235739573404233515998054515237941670684998710354866556006166109687267747033311119523095551580663471333959703237,0
addz:524949462554941259231534068226031713403901496733675164019401169035506568365099187744726318910057654353122289567046127213239382489373481396320444664670316,1490253877881770551962175144436454541398836786587327513923615258957833947605073002530916701058674982118935449527118731127737204672226099340981814061707571,0
s:5686173978658354243804370389342133110701979569743627635980920906906515746995033606376762816250739388056348718219469885755387539826899554650038581969051091,8549889890868425655879055722947058978145203764406127150507098173884780109053744542189251214565820786558425261690598929452738973212231200784461934734568630,0
one2:5686173978658354243804370389342133110701979569743627635980920906906515746995033606376762816250739388056348718219469885755387539826899554650038581969051091,8549889890868425655879055722947058978145203764406127150507098173884780109053744542189251214565820786558425261690598929452738973212231200784461934734568630,1
rev:5686173978658354243804370389342133110701979569743627635980920906906515746995033606376762816250739388056348718219469885755387539826899554650038581969051091,230820908794886866558726261806990837661679435008081060521555225381695521826478414889373964856841434864730597078983388006538740155086280540463195263656161,0
one3:5686173978658354243804370389342133110701979569743627635980920906906515746995033606376762816250739388056348718219469885755387539826899554650038581969051091,230820908794886866558726261806990837661679435008081060521555225381695521826478414889373964856841434864730597078983388006538740155086280540463195263656161,1

注意为什么任意元素都是生成元呢,官网文档已经写了,G1,G2,GT都是素数阶群,素数阶群任意元素除了单位元均为生成元。在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅逼码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值