CL.java
package com.xyl.bf;
/**
* @BelongsProject: JavaSE_code
* @BelongsPackage: com.xyl.bf
* @Auther: Yongliang Xu l1264009784@163.com
* @Date: 2021/3/22 20:30
* @Description:
* @since JDK 1.8
*/
public interface CL {
void buildSystem();//系统建立
void setPartialSK();//部分私钥提取
void setSecretValue();//设置秘密值
void setSK();//设置私钥
void setPK();//设置公钥
void Sc();//签密
void Dsc();//解签密
}
BF.java
package com.xyl.bf;/**
* @BelongsProject: JavaSE_code
* @BelongsPackage: com.xyl.bf
* @Auther: Yongliang Xu l1264009784@163.com
* @Date: 2021/3/22 20:35
* @Description:
* @since JDK 1.8
*/
import com.xyl.de.TimeCountProxyHandle;
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;
import java.lang.reflect.Proxy;
/**
*@ClassName BF
*@Description TODO
*@Author Yongliang Xu
*@Date 2021/3/22 20:35
*@Version 1.0
*/
public class BF implements CL {
Pairing pairing;
Field G1,GT,Zr;
Element msk,P,Ppub,Qa,Qb,Da,Db,xa,xb,PKa,PKb,r,V,T,W,h3,h4,T1;
public BF() {
init();
}
public void init() {
pairing = PairingFactory.getPairing("a.properties");
PairingFactory.getInstance().setUsePBCWhenPossible(true);
checkSymmetric(pairing);
G1 = pairing.getG1();
GT=pairing.getGT();
Zr = pairing.getZr();
P=G1.newElement();
Ppub=G1.