资源简介
一种基于属性的加密方法的实现,CPABE属性加密源码,由JAVA实现
代码片段和文件信息
package co.junwei.bswabe;
import it.unisa.dia.gas.jpbc.CurveParameters;
import it.unisa.dia.gas.jpbc.Element;
import it.unisa.dia.gas.jpbc.Pairing;
import it.unisa.dia.gas.plaf.jpbc.pairing.DefaultCurveParameters;
import it.unisa.dia.gas.plaf.jpbc.pairing.PairingFactory;
import java.io.ByteArrayInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Bswabe {
/*
* Generate a public key and corresponding master secret key.
*/
private static String curveParams = “type a\n“
+ “q 87807107996633125224377819847540498158068831994142082“
+ “1102865339926647563088022295707862517942266222142315585“
+ “8769582317459277713367317481324925129998224791\n“
+ “h 12016012264891146079388821366740534204802954401251311“
+ “822919615131047207289359704531102844802183906537786776\n“
+ “r 730750818665451621361119245571504901405976559617\n“
+ “exp2 159\n“ + “exp1 107\n“ + “sign1 1\n“ + “sign0 1\n“;
public static void setup(BswabePub pub BswabeMsk msk) {
Element alpha beta_inv;
CurveParameters params = new DefaultCurveParameters()
.load(new ByteArrayInputStream(curveParams.getBytes()));
pub.pairingDesc = curveParams;
pub.p = PairingFactory.getPairing(params);
Pairing pairing = pub.p;
pub.g = pairing.getG1().newElement();
pub.f = pairing.getG1().newElement();
pub.h = pairing.getG1().newElement();
pub.gp = pairing.getG2().newElement();
pub.g_hat_alpha = pairing.getGT().newElement();
alpha = pairing.getZr().newElement();
msk.beta = pairing.getZr().newElement();
msk.g_alpha = pairing.getG2().newElement();
alpha.setToRandom();
msk.beta.setToRandom();
pub.g.setToRandom();
pub.gp.setToRandom();
msk.g_alpha = pub.gp.duplicate();
msk.g_alpha.powZn(alpha);
beta_inv = msk.beta.duplicate();
beta_inv.invert();
pub.f = pub.g.duplicate();
pub.f.powZn(beta_inv);
pub.h = pub.g.duplicate();
pub.h.powZn(msk.beta);
pub.g_hat_alpha = pairing.pairing(pub.g msk.g_alpha);
}
/*
* Generate a private key with the given set of attributes.
*/
public static BswabePrv keygen(BswabePub pub BswabeMsk msk String[] attrs)
throws NoSuchAlgorithmException {
BswabePrv prv = new BswabePrv();
Element g_r r beta_inv;
Pairing pairing;
/* initialize */
pairing = pub.p;
prv.d = pairing.getG2().newElement();
g_r = pairing.getG2().newElement();
r = pairing.getZr().newElement();
beta_inv = pairing.getZr().newElement();
/* compute */
r.setToRandom();
g_r = pub.gp.duplicate();
g_r.powZn(r);
prv.d = msk.g_alpha.duplicate();
prv.d.mul(g_r);
beta_inv = msk.beta.duplicate();
beta_inv.invert();
prv.d.powZn(beta_inv);
int i len = attrs.length;
prv.comps = new ArrayList();
for (i = 0; i < len; i++) {
BswabePrvComp comp = new BswabePrvComp();
Element h_rp;
Element rp;
comp.attr = attrs[i];
comp.d = pa
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 17 2018-03-21 00:50 cpabe\.gitignore
文件 5 2018-09-17 15:20 cpabe\.idea\.name
文件 758 2018-09-17 15:21 cpabe\.idea\compiler.xm
文件 305 2018-09-17 15:21 cpabe\.idea\encodings.xm
文件 443 2018-09-17 15:21 cpabe\.idea\misc.xm
文件 496 2018-09-17 15:21 cpabe\.idea\modules.xm
文件 21430 2018-09-21 08:48 cpabe\.idea\workspace.xm
文件 483 2018-03-21 00:50 cpabe\AUTHORS.md
文件 460 2018-03-21 00:50 cpabe\BUILD.md
文件 15127 2018-03-21 00:50 cpabe\COPYING
文件 1224 2018-09-17 15:21 cpabe\cpabe-api\cpabe-api.iml
文件 0 2018-03-21 00:50 cpabe\cpabe-api\lib\.gitkeep
文件 8272 2018-03-21 00:50 cpabe\cpabe-api\lib\jpbc-api-1.2.1.jar
文件 213238 2018-03-21 00:50 cpabe\cpabe-api\lib\jpbc-plaf-1.2.1.jar
文件 1177 2018-03-21 00:50 cpabe\cpabe-api\pom.xm
文件 15798 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\bswabe\Bswabe.java
文件 436 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\bswabe\BswabeCph.java
文件 221 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\bswabe\BswabeCphKey.java
文件 235 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\bswabe\BswabeElementBoolean.java
文件 194 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\bswabe\BswabeMsk.java
文件 616 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\bswabe\BswabePolicy.java
文件 203 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\bswabe\BswabePolynomial.java
文件 223 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\bswabe\BswabePrv.java
文件 293 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\bswabe\BswabePrvComp.java
文件 374 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\bswabe\BswabePub.java
文件 7967 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\bswabe\SerializeUtils.java
文件 1284 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\cpabe\AESCoder.java
文件 3099 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\cpabe\Common.java
文件 3535 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\cpabe\Cpabe.java
文件 8263 2018-03-21 00:50 cpabe\cpabe-api\src\main\java\co\junwei\cpabe\policy\ALangPolicy.y
............此处省略100个文件信息
评论
共有 条评论