数字签密算法JPBC实现

各种签密算法链接

BF签密算法Java实现(JPBC)

BF加密

Ident.java

package com.xyl.yes;

public interface Ident {
   	
	
		void buildSystem();
		
		void extractSecretKey();
		
		void encrypt();
		
		void decrypt();

}

BasicIdent2.java

package com.xyl.yes;

import java.lang.reflect.Proxy;

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 BasicIdent2 implements Ident{
   
	private Element s, r, P, Ppub, Su, Qu, V, T1, T2;
	private Field G1, Zr;
	private Pairing pairing;
 
	public BasicIdent2() {
   
		init();
	}
 
	/**
    * 初始化
    */
	private void init() {
   
		PairingFactory.getInstance().setUsePBCWhenPossible(true);
		pairing = PairingFactory.getPairing("a.properties");//
		checkSymmetric(pairing);
		//将变量r初始化为Zr中的元素
		Zr = pairing.getZr();//
		r = Zr.newElement();//阶
		//将变量Ppub,Qu,Su,V初始化为G1中的元素,G1是加法群
		G1 = pairing.getG1();//
		Ppub = G1.newElement(); //主公钥
		Qu = G1.newElement();
		Su = G1.newElement();
		V = G1.newElement();
		//将变量T1,T2V初始化为GT中的元素,GT是乘法群
		Field GT = pairing.getGT();//
		T1 = GT.newElement();
		T2 = GT.newElement();
	}
 
	/**
	 * 判断配对是否为对称配对,不对称则输出错误信息
	 * 
	 * @param pairing
	 */
	private void checkSymmetric(Pairing pairing) {
   
		if (!pairing.isSymmetric()) {
   
			throw new RuntimeException("密钥不对称!");
		}
	}
 
	
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yongliang Xu (许永亮)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值