資源簡介
一種基于屬性的加密方法的實現,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? 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個文件信息
評論
共有 條評論