最近实验室有需求写一个ECC的实现代码。今天刚写好一个简陋的实现!!先贴核心代码,等有时间了再来写思考过程!
网上可循的代码太少了!欢迎大家一起在评论区讨论!
ECC加解密算法:
//系统初始化
public static Pairing initPairing(String parameter) {
System.out.println("系统正在导入椭圆曲线的相关参数……");
//读入参数
Pairing pairing = PairingFactory.getPairing(parameter);
System.out.println("系统已经导入完毕");
return pairing;
}
public static Field initG_1(Pairing pairing) {
System.out.println("系统正在产生椭圆曲线……");
//读入参数
Field G1 = pairing.getG1();
System.out.println("系统已经产生椭圆曲线");
return G1;
}
public static Element initG(Field G1) {
System.out.println("系统正在挑选生成元点G……");
//挑选生成元点G
Element G = G1.newRandomElement().getImmutable();
System.out.println("系统已经挑选好生成元点G");
return G;
}
public static Element initP_t(Field G1) {
System.out.println("系统正在挑选随机点P_t……");
//挑选随机点P_t
Element P_t = G1.newRandomElement().getImmutable();
System.out.println("系统已经挑选好随机点P_t")