Ejemplo n.º 1
0
def encrypt(M, policy_str):
	global Y
	global s
	global attrs
	global sh
	global share
	global Cr
	global Cpr

	input = [pk, M, policy_str]
	g, g2, h, f, egg = pk
	policy = createPolicy(policy_str)
	attrs = getAttributeList(policy)
	R = groupObj.random(GT)
	print("R :=", R)
	s = groupObj.hash([R, M], ZR)
	s_sesskey = SHA1(R)
	print("s_sesskey :=", s_sesskey)
	Ctl = (R * (egg ** s))
	sh = calculateSharesDict(s, policy)
	Y = len(sh)
	C = (h ** s)
	for y in range(0, Y):
		y1 = attrs[y]
		share[y1] = sh[y1]
		Cr[y1] = (g ** share[y1])
		Cpr[y1] = (groupObj.hash(y1, G2) ** share[y1])
	T1 = SymEnc(s_sesskey, M)
	ct = [policy_str, Ctl, C, Cr, Cpr, T1]
	output = ct
	return output
Ejemplo n.º 2
0
def encrypt(M, policy_str):
    global Y
    global s
    global attrs
    global sh
    global share
    global Cr
    global Cpr

    input = [pk, M, policy_str]
    g, g2, h, f, egg = pk
    policy = createPolicy(policy_str)
    attrs = getAttributeList(policy)
    R = groupObj.random(GT)
    print("R :=", R)
    s = groupObj.hash([R, M], ZR)
    s_sesskey = SHA1(R)
    print("s_sesskey :=", s_sesskey)
    Ctl = (R * (egg**s))
    sh = calculateSharesDict(s, policy)
    Y = len(sh)
    C = (h**s)
    for y in range(0, Y):
        y1 = attrs[y]
        share[y1] = sh[y1]
        Cr[y1] = (g**share[y1])
        Cpr[y1] = (groupObj.hash(y1, G2)**share[y1])
    T1 = SymEnc(s_sesskey, M)
    ct = [policy_str, Ctl, C, Cr, Cpr, T1]
    output = ct
    return output
Ejemplo n.º 3
0
def transform(ct):
	input = [pk, skBlinded, ct]
	policy_str, Ctl, C, Cr, Cpr, T1 = ct
	S, D, Dj, Djp = skBlinded
	policy = createPolicy(policy_str)
	attrs = prune(policy, S)
	coeff = getCoefficients(policy)
	Y = len(attrs)
	A = dotprod2(range(0,Y), transformLambdaFunc, attrs, Cr, coeff, Dj, Djp, Cpr)
	print(" A := ", A)
	result0 = (pair(C, D) * A)
	T0 = Ctl
	T2 = result0
	print("T2 :=>", result0)
	partCT = {'T0':T0, 'T1':T1, 'T2':T2}
	output = partCT
	return output
Ejemplo n.º 4
0
def transform(ct):
    input = [pk, skBlinded, ct]
    policy_str, Ctl, C, Cr, Cpr, T1 = ct
    S, D, Dj, Djp = skBlinded
    policy = createPolicy(policy_str)
    attrs = prune(policy, S)
    coeff = getCoefficients(policy)
    Y = len(attrs)
    A = dotprod2(range(0, Y), transformLambdaFunc, attrs, Cr, coeff, Dj, Djp,
                 Cpr)
    print(" A := ", A)
    result0 = (pair(C, D) * A)
    T0 = Ctl
    T2 = result0
    print("T2 :=>", result0)
    partCT = {'T0': T0, 'T1': T1, 'T2': T2}
    output = partCT
    return output