• 大小: 2.16MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-22
  • 语言: Java
  • 标签: CPABE  属性加密  

资源简介

一种基于属性的加密方法的实现,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.xml

     文件        305  2018-09-17 15:21  cpabe\.idea\encodings.xml

     文件        443  2018-09-17 15:21  cpabe\.idea\misc.xml

     文件        496  2018-09-17 15:21  cpabe\.idea\modules.xml

     文件      21430  2018-09-21 08:48  cpabe\.idea\workspace.xml

     文件        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.xml

     文件      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个文件信息

评论

共有 条评论

相关资源