Exemplo n.º 1
0
def run_Batch(verifyArgsDict, groupObjParam, verifyFuncArgs):
    global group
    group = groupObjParam

    N = len(verifyArgsDict)
    z = 0
    r, s = verifyArgsDict[z]['sig'][bodyKey]['r'], verifyArgsDict[z]['sig'][
        bodyKey]['i']
    n = ceilog(s)
    delta = {}
    for z in range(0, N):
        delta[z] = prng_bits(80)

    incorrectIndices = []
    __init__(group)

    for z in range(0, N):
        for arg in verifyFuncArgs:
            if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
                sys.exit("ALERT:  Group membership check failed!!!!\n")

        pass

    z = 0
    startSigNum = 0
    endSigNum = N

    dotA = {}
    dotB = {}
    dotC = {}
    dotD = {}
    dotE = {}

    r, s = verifyArgsDict[z]['sig'][bodyKey]['r'], verifyArgsDict[z]['sig'][
        bodyKey]['i']
    S = group.init(ZR, s)
    n = ceilog(s)

    for z in range(0, N):
        M = group.hash(verifyArgsDict[z]['msg'][bodyKey], ZR)
        sigma1, sigma2 = verifyArgsDict[z]['sig'][bodyKey][1], verifyArgsDict[
            z]['sig'][bodyKey][2]
        r, s = verifyArgsDict[z]['sig'][bodyKey]['r'], verifyArgsDict[z][
            'sig'][bodyKey]['i']
        U, V, D = verifyArgsDict[z]['pk'][bodyKey]['U'], verifyArgsDict[z][
            'pk'][bodyKey]['V'], verifyArgsDict[z]['pk'][bodyKey]['D']

        dotA[z] = sigma1**delta[z]
        dotB[z] = U**(M * delta[z])
        dotC[z] = V**(r * delta[z])
        dotD[z] = D**delta[z]
        dotE[z] = sigma2**(n * delta[z])

    verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, n, S,
                        delta, dotA, dotB, dotC, dotD, dotE)

    return incorrectIndices
Exemplo n.º 2
0
def run_Batch(verifyArgsDict, groupObjParam, verifyFuncArgs):
    global group
    global lam_func, debug
    group = groupObjParam

    N = len(verifyArgsDict)
    z = 0
    n, y, pi, pizero = verifyArgsDict[z]['pk'][bodyKey]['n'], verifyArgsDict[
        z]['st'][bodyKey]['y'], verifyArgsDict[z]['st'][bodyKey][
            'pi'], verifyArgsDict[z]['st'][bodyKey]['pi0']
    delta1 = {}
    delta2 = {}
    delta3 = {}
    for z in range(0, N):
        delta1[z] = prng_bits(80)
        delta2[z] = prng_bits(80)
        delta3[z] = prng_bits(80)

    incorrectIndices = []
    lam_func = lambda i, a, b: a[i]**b[i]
    __init__(group)

    for z in range(0, N):
        for arg in verifyFuncArgs:
            if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
                sys.exit("ALERT:  Group membership check failed!!!!\n")

        pass

    z = 0
    startSigNum = 0
    endSigNum = N

    dotA = {}
    dotB = {}
    dotC = {}
    dotD = {}
    dotE = {}

    for z in range(0, N):
        n, y, pi, pizero = verifyArgsDict[z]['pk'][bodyKey][
            'n'], verifyArgsDict[z]['st'][bodyKey]['y'], verifyArgsDict[z][
                'st'][bodyKey]['pi'], verifyArgsDict[z]['st'][bodyKey]['pi0']

        dotA[z] = (verifyArgsDict[z]['pk'][bodyKey]['g1']**(
            (1 - verifyArgsDict[z]['x'][bodyKey][0]) * delta1[z]) *
                   verifyArgsDict[z]['pk'][bodyKey]['U1'][0]
                   **(verifyArgsDict[z]['x'][bodyKey][0] * delta1[z]))
        dotB[z] = pi[0]**-delta1[z]
        dotC[z] = pi[n - 1]**delta1[z]
        dotD[z] = pizero**-delta1[z]
        dotE[z] = y**-delta1[z]

    verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, delta1,
                        dotA, dotB, dotC, dotD, dotE)

    return incorrectIndices
Exemplo n.º 3
0
def run_Batch(verifyArgsDict, groupObjParam, verifyFuncArgs):
	global group
	group = groupObjParam

	N = len(verifyArgsDict)
	z = 0
	r , s= verifyArgsDict[z]['sig'][bodyKey][ 'r' ] , verifyArgsDict[z]['sig'][bodyKey][ 'i' ]
	n= ceilog( s )
	delta = {}
	for z in range(0, N):
		delta[z] = prng_bits(80)

	incorrectIndices = []
	__init__(group)


	for z in range(0, N):
		for arg in verifyFuncArgs:
			if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
				sys.exit("ALERT:  Group membership check failed!!!!\n")

		pass

	z = 0
	startSigNum = 0
	endSigNum = N

	dotA = {}
	dotB = {}
	dotC = {}
	dotD = {}
	dotE = {}
	dotF = {}
	dotG = {}

	r , s= verifyArgsDict[z]['sig'][bodyKey][ 'r' ] , verifyArgsDict[z]['sig'][bodyKey][ 'i' ]
	S= group.init( ZR , s )
	n= ceilog( s )

	for z in range(0, N):
		M= group.hash( verifyArgsDict[z]['msg'][bodyKey] , ZR )
		sigma1 , sigma2= verifyArgsDict[z]['sig'][bodyKey][ 1 ] , verifyArgsDict[z]['sig'][bodyKey][ 2 ]
		r , s= verifyArgsDict[z]['sig'][bodyKey][ 'r' ] , verifyArgsDict[z]['sig'][bodyKey][ 'i' ]
		U , V , D= verifyArgsDict[z]['pk'][bodyKey][ 'U' ] , verifyArgsDict[z]['pk'][bodyKey][ 'V' ] , verifyArgsDict[z]['pk'][bodyKey][ 'D' ]

		dotA[z] =   sigma1 ** delta [ z ]  
		dotB[z] =   U **( M * delta [ z ] )  
		dotC[z] =   V **( r * delta [ z ] )  
		dotD[z] =   D ** delta [ z ]  
		dotE[z] =   sigma2 **( delta [ z ] * n )  
		dotF[z] =   sigma2 **( delta [ z ] * S )  
		dotG[z] =   sigma2 ** delta [ z ]  

	verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, n, S, delta, dotA, dotB, dotC, dotD, dotE, dotF, dotG)

	return incorrectIndices
Exemplo n.º 4
0
def run_Batch(verifyArgsDict, groupObjParam, verifyFuncArgs):
	global group
	global lam_func, debug
	group = groupObjParam

	N = len(verifyArgsDict)
	z = 0
	n , y , pi , pizero= verifyArgsDict[z]['pk'][bodyKey][ 'n' ] , verifyArgsDict[z]['st'][bodyKey][ 'y' ] , verifyArgsDict[z]['st'][bodyKey][ 'pi' ] , verifyArgsDict[z]['st'][bodyKey][ 'pi0' ]
	delta = {}
	for z in range(0, N):
		delta[z] = prng_bits(80)

	incorrectIndices = []
	lam_func = lambda i,a,b: a[i] ** b[i]
	__init__(group)


	for z in range(0, N):
		for arg in verifyFuncArgs:
			if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
				sys.exit("ALERT:  Group membership check failed!!!!\n")

		pass

	z = 0
	startSigNum = 0
	endSigNum = N

	dotA = {}
	dotB = {}
	dotC = {}
	dotD = {}
	dotE = {}
	dotF = {}
	dotG = {}

	for z in range(0, N):
		n , y , pi , pizero= verifyArgsDict[z]['pk'][bodyKey][ 'n' ] , verifyArgsDict[z]['st'][bodyKey][ 'y' ] , verifyArgsDict[z]['st'][bodyKey][ 'pi' ] , verifyArgsDict[z]['st'][bodyKey][ 'pi0' ]

		dotA[z] =  ( verifyArgsDict[z]['pk'][bodyKey] [ 'g1' ] **(( 1 + -verifyArgsDict[z]['x'][bodyKey] [ 0 ] ) * delta [ z ] ) * verifyArgsDict[z]['pk'][bodyKey] [ 'U1' ] [ 0 ] **( verifyArgsDict[z]['x'][bodyKey] [ 0 ] * delta [ z ] ) )  
		dotB[z] =   pi [ 0 ] ** -delta [ z ]  
		dotC[z] =   pi [ n -1 ] ** delta [ z ]  
		dotD[z] =   pizero ** -delta [ z ]  
		dotE[z] =   y ** -delta [ z ]  
		dotF[z] = {}
		dotG[z] = {}
		for t in range(1, n):
			dotF[z][t] =  ( pi [ t ] ** delta [ z ] * pi [ t -1 ] **(( 1 + -verifyArgsDict[z]['x'][bodyKey] [ t ] ) * -delta [ z ] ) )  
			dotG[z][t] =   pi [ t -1 ] **( verifyArgsDict[z]['x'][bodyKey] [ t ] * delta [ z ] )  

	verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, delta, dotA, dotB, dotC, dotD, dotE, dotF, dotG)

	return incorrectIndices
Exemplo n.º 5
0
def run_Batch_Sorted(verifyArgsDict, groupObjParam, verifyFuncArgs):
    global group
    global H2, debug
    group = groupObjParam

    N = len(verifyArgsDict)
    z = 0
    delta = {}
    for z in range(0, N):
        delta[z] = prng_bits(80)

    incorrectIndices = []
    H2 = lambda x, y: group.hash((x, y), ZR)
    __init__(group)

    for z in range(0, N):
        for arg in verifyFuncArgs:
            if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
                sys.exit("ALERT:  Group membership check failed!!!!\n")

        pass

    z = 0
    startSigNum = 0
    endSigNum = N

    dotA = {}
    dotB = {}
    dotC = {}

    for z in range(0, N):
        sig1, sig2 = verifyArgsDict[z]['sig'][bodyKey][
            'sig_hess'], verifyArgsDict[z]['sig'][bodyKey]['sig_chch']
        S1h, S2h = sig1['S1'], sig1['S2']
        S1c, S2c = sig2['S1'], sig2['S2']
        ah = H2(verifyArgsDict[z]['M'][bodyKey], S1h)
        ac = H2(verifyArgsDict[z]['M'][bodyKey], S1c)

        dotA[z] = (verifyArgsDict[z]['pk'][bodyKey]**(ah * delta[z]) *
                   (S1c**-delta[z] *
                    verifyArgsDict[z]['pk'][bodyKey]**(ac * -delta[z])))
        dotB[z] = S1h**delta[z]
        dotC[z] = (S2h**-delta[z] * S2c**delta[z])

    verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, delta,
                        dotA, dotB, dotC)

    return incorrectIndices
Exemplo n.º 6
0
def run_Batch_Sorted(verifyArgsDict, groupObjParam, verifyFuncArgs):
	global group
	global H2, debug
	group = groupObjParam

	N = len(verifyArgsDict)
	z = 0
	delta = {}
	for z in range(0, N):
		delta[z] = prng_bits(80)

	incorrectIndices = []
	H2 = lambda x,y: group.hash((x,y), ZR)
	__init__(group)


	for z in range(0, N):
		for arg in verifyFuncArgs:
			if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
				sys.exit("ALERT:  Group membership check failed!!!!\n")

		pass

	z = 0
	startSigNum = 0
	endSigNum = N

	dotA = {}
	dotB = {}
	dotC = {}

	for z in range(0, N):
		sig1 , sig2= verifyArgsDict[z]['sig'][bodyKey][ 'sig_hess' ] , verifyArgsDict[z]['sig'][bodyKey][ 'sig_chch' ]
		S1h , S2h= sig1 [ 'S1' ] , sig1 [ 'S2' ]
		S1c , S2c= sig2 [ 'S1' ] , sig2 [ 'S2' ]
		ah= H2( verifyArgsDict[z]['M'][bodyKey] , S1h )
		ac= H2( verifyArgsDict[z]['M'][bodyKey] , S1c )

		dotA[z] =  ( verifyArgsDict[z]['pk'][bodyKey] **( ah * delta [ z ] ) *( S1c ** -delta [ z ] * verifyArgsDict[z]['pk'][bodyKey] **( ac * -delta [ z ] ) ) )  
		dotB[z] =   S1h ** delta [ z ]  
		dotC[z] =  ( S2h ** -delta [ z ] * S2c ** delta [ z ] )  

	verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, delta, dotA, dotB, dotC)

	return incorrectIndices
Exemplo n.º 7
0
def run_Batch_Sorted(verifyArgsDict, groupObjParam, verifyFuncArgs):
	global group
	global debug, hashObj, lam_func
	group = groupObjParam

	N = len(verifyArgsDict)
	z = 0
	delta = {}
	for z in range(0, N):
		delta[z] = prng_bits(80)

	incorrectIndices = []
	lam_func = lambda i,a,b: a[i] ** b[i]
	__init__(group)


	for z in range(0, N):
		#for arg in verifyFuncArgs:
			#if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
				#sys.exit("ALERT:  Group membership check failed!!!!\n")

		pass

	z = 0
	startSigNum = 0
	endSigNum = N

	dotA = {}
	dotB = {}

	for z in range(0, N):
		M= strToId( verifyArgsDict[z]['mpk'][bodyKey] , verifyArgsDict[z]['message'][bodyKey] )
		h= verifyArgsDict[z]['mpk'][bodyKey][ 'u0' ] * dotprod( 1 , -1 , verifyArgsDict[z]['mpk'][bodyKey][ 'z' ] , lam_func , verifyArgsDict[z]['mpk'][bodyKey][ 'u' ] , M )
		sig= verifyArgsDict[z]['sigDict'][bodyKey][ 'sig1' ]
		t= verifyArgsDict[z]['sigDict'][bodyKey][ 'sig2' ]

		dotA[z] =   h **( t * delta [ z ] )  
		dotB[z] =   sig **( delta [ z ] * t )  

	verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, delta, dotA, dotB)

	return incorrectIndices
Exemplo n.º 8
0
def run_Batch(verifyArgsDict, groupObjParam, verifyFuncArgs):
    global group
    global debug
    group = groupObjParam

    N = len(verifyArgsDict)
    z = 0
    delta = {}
    for z in range(0, N):
        delta[z] = prng_bits(80)

    incorrectIndices = []
    __init__(group)

    for z in range(0, N):
        #for arg in verifyFuncArgs:
        #if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
        #sys.exit("ALERT:  Group membership check failed!!!!\n")

        pass

    z = 0
    startSigNum = 0
    endSigNum = N

    dotA = {}
    dotB = {}
    dotC = {}

    for z in range(0, N):
        (a, b, c) = verifyArgsDict[z]['sig'][bodyKey]['a'], verifyArgsDict[z][
            'sig'][bodyKey]['a_y'], verifyArgsDict[z]['sig'][bodyKey]['a_xy']
        m = group.hash(verifyArgsDict[z]['M'][bodyKey], ZR)

        dotA[z] = a**delta[z]
        dotB[z] = (b**-delta[z] * c**-delta[z])
        dotC[z] = (a**delta[z] * b**(m * delta[z]))

    verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, delta,
                        dotA, dotB, dotC)

    return incorrectIndices
Exemplo n.º 9
0
def run_Batch_Sorted(verifyArgsDict, groupObjParam, verifyFuncArgs):
    global group
    global debug
    group = groupObjParam

    N = len(verifyArgsDict)
    z = 0
    delta = {}
    for z in range(0, N):
        delta[z] = prng_bits(80)

    incorrectIndices = []
    __init__(group)

    for z in range(0, N):
        #for arg in verifyFuncArgs:
        #if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
        #sys.exit("ALERT:  Group membership check failed!!!!\n")

        pass

    z = 0
    startSigNum = 0
    endSigNum = N

    dotA = {}
    dotB = {}

    for z in range(0, N):
        M = verifyArgsDict[z]['message'][bodyKey]
        h = group.hash(M, G1)
        sig = verifyArgsDict[z]['sigDict'][bodyKey]['sig1']
        t = verifyArgsDict[z]['sigDict'][bodyKey]['sig2']

        dotA[z] = h**(t * delta[z])
        dotB[z] = sig**(delta[z] * t)

    verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, delta,
                        dotA, dotB)

    return incorrectIndices
Exemplo n.º 10
0
def run_Batch(verifyArgsDict, groupObjParam, verifyFuncArgs):
	global group
	global debug
	group = groupObjParam

	N = len(verifyArgsDict)
	z = 0
	delta = {}
	for z in range(0, N):
		delta[z] = prng_bits(80)

	incorrectIndices = []
	__init__(group)


	for z in range(0, N):
		#for arg in verifyFuncArgs:
			#if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
				#sys.exit("ALERT:  Group membership check failed!!!!\n")

		pass

	z = 0
	startSigNum = 0
	endSigNum = N

	dotA = {}
	dotB = {}
	dotC = {}

	for z in range(0, N):
		( a , b , c )= verifyArgsDict[z]['sig'][bodyKey][ 'a' ] , verifyArgsDict[z]['sig'][bodyKey][ 'a_y' ] , verifyArgsDict[z]['sig'][bodyKey][ 'a_xy' ]
		m= group.hash( verifyArgsDict[z]['M'][bodyKey] , ZR )

		dotA[z] =   a ** delta [ z ]  
		dotB[z] =  ( b ** -delta [ z ] * c ** -delta [ z ] )  
		dotC[z] =  ( a ** delta [ z ] * b **( m * delta [ z ] ) )  

	verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, delta, dotA, dotB, dotC)

	return incorrectIndices
Exemplo n.º 11
0
def run_Batch_Sorted(verifyArgsDict, groupObjParam, verifyFuncArgs):
    global group
    global debug
    group = groupObjParam

    N = len(verifyArgsDict)
    z = 0
    delta = {}
    for z in range(0, N):
        delta[z] = prng_bits(80)

    incorrectIndices = []
    __init__(group)

    for z in range(0, N):
        # for arg in verifyFuncArgs:
        # if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
        # sys.exit("ALERT:  Group membership check failed!!!!\n")

        pass

    z = 0
    startSigNum = 0
    endSigNum = N

    dotA = {}
    dotB = {}

    for z in range(0, N):
        M = verifyArgsDict[z]["message"][bodyKey]
        h = group.hash(M, G1)
        sig = verifyArgsDict[z]["sigDict"][bodyKey]["sig1"]
        t = verifyArgsDict[z]["sigDict"][bodyKey]["sig2"]

        dotA[z] = h ** (t * delta[z])
        dotB[z] = sig ** (delta[z] * t)

    verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, delta, dotA, dotB)

    return incorrectIndices
Exemplo n.º 12
0
def run_Batch(verifyArgsDict, groupObjParam, verifyFuncArgs):
	global group
	global util
	group = groupObjParam

	N = len(verifyArgsDict)
	z = 0
	delta = {}
	for z in range(0, N):
		delta[z] = prng_bits(80)

	incorrectIndices = []
	__init__(group)


	for z in range(0, N):
		for arg in verifyFuncArgs:
			if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
				sys.exit("ALERT:  Group membership check failed!!!!\n")

		pass

	z = 0
	startSigNum = 0
	endSigNum = N

	dotA = {}
	dotB = {}
	dotC = {}
	dotD = {}
	dotE = {}
	dotF = {}
	dotG = {}
	dotH = {}
	dotI = {}
	dotJ = {}
	dotK = {}
	dotL = {}
	dotM = {}
	sumN = {}

	A= verifyArgsDict[z]['mpk'][bodyKey][ 'egg_alpha' ]

	for z in range(0, N):
		s1 , s2 , t , tagc= group.random( ZR , 4 )
		s= s1 + s2
		M= group.hash( verifyArgsDict[z]['m'][bodyKey] )
		sig1 , sig2 , sig3 , sig4 , sig5 , sig6 , sig7 , sigK , tagk= verifyArgsDict[z]['sigma'][bodyKey][ 'sig' ] [ 1 ] , verifyArgsDict[z]['sigma'][bodyKey][ 'sig' ] [ 2 ] , verifyArgsDict[z]['sigma'][bodyKey][ 'sig' ] [ 3 ] , verifyArgsDict[z]['sigma'][bodyKey][ 'sig' ] [ 4 ] , verifyArgsDict[z]['sigma'][bodyKey][ 'sig' ] [ 5 ] , verifyArgsDict[z]['sigma'][bodyKey][ 'sig' ] [ 6 ] , verifyArgsDict[z]['sigma'][bodyKey][ 'sig' ] [ 7 ] , verifyArgsDict[z]['sigma'][bodyKey][ 'K' ] , verifyArgsDict[z]['sigma'][bodyKey][ 'tagk' ]
		theta=  ~( tagc -tagk )

		dotA[z] =   sig1 **( s * delta [ z ] )  
		dotB[z] =   sig2 **( s1 * delta [ z ] )  
		dotC[z] =   sig3 **( s1 * delta [ z ] )  
		dotD[z] =   sig4 **( s2 * delta [ z ] )  
		dotE[z] =   sig5 **( s2 * delta [ z ] )  
		dotF[z] =   sig6 **( delta [ z ] * s1 )  
		dotG[z] =   sig6 **( delta [ z ] * s2 )  
		dotH[z] =   sig7 **( delta [ z ] * s1 )  
		dotI[z] =   sig7 **( delta [ z ] * s2 )  
		dotJ[z] =  ( sig7 **( delta [ z ] * -t ) * sig7 **(( theta * delta [ z ] ) *( tagc * t ) ) )  
		dotK[z] =   sig7 **(( theta * delta [ z ] ) *( M * t ) )  
		dotL[z] =   sig7 **(( theta * delta [ z ] ) * t )  
		#dotM[z] =   sigK **( t *( -theta * -delta [ z ] ) )


		dotM[z] =   sigK **( -t *( theta * delta [ z ] ) )

  
		sumN[z] =  ( s2 * delta [ z ] )  

	verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, A, delta, dotA, dotB, dotC, dotD, dotE, dotF, dotG, dotH, dotI, dotJ, dotK, dotL, dotM, sumN)

	return incorrectIndices
Exemplo n.º 13
0
def run_Batch(verifyArgsDict, groupObjParam, verifyFuncArgs):
    global group
    global util
    group = groupObjParam

    N = len(verifyArgsDict)
    z = 0
    delta = {}
    for z in range(0, N):
        delta[z] = prng_bits(80)

    incorrectIndices = []
    __init__(group)

    for z in range(0, N):
        for arg in verifyFuncArgs:
            if (group.ismember(verifyArgsDict[z][arg][bodyKey]) == False):
                sys.exit("ALERT:  Group membership check failed!!!!\n")

        pass

    z = 0
    startSigNum = 0
    endSigNum = N

    dotA = {}
    dotB = {}
    dotC = {}
    dotD = {}
    dotE = {}
    dotF = {}
    dotG = {}
    dotH = {}
    dotI = {}
    dotJ = {}
    dotK = {}
    dotL = {}
    dotM = {}
    sumN = {}

    A = verifyArgsDict[z]['mpk'][bodyKey]['egg_alpha']

    for z in range(0, N):
        s1, s2, t, tagc = group.random(ZR, 4)
        s = s1 + s2
        M = group.hash(verifyArgsDict[z]['m'][bodyKey])
        sig1, sig2, sig3, sig4, sig5, sig6, sig7, sigK, tagk = verifyArgsDict[
            z]['sigma'][bodyKey]['sig'][1], verifyArgsDict[z]['sigma'][
                bodyKey]['sig'][2], verifyArgsDict[z]['sigma'][bodyKey]['sig'][
                    3], verifyArgsDict[z]['sigma'][bodyKey]['sig'][
                        4], verifyArgsDict[z]['sigma'][bodyKey]['sig'][
                            5], verifyArgsDict[z]['sigma'][bodyKey]['sig'][
                                6], verifyArgsDict[z]['sigma'][bodyKey]['sig'][
                                    7], verifyArgsDict[z]['sigma'][bodyKey][
                                        'K'], verifyArgsDict[z]['sigma'][
                                            bodyKey]['tagk']
        theta = ~(tagc - tagk)

        dotA[z] = sig1**(s * delta[z])
        dotB[z] = sig2**(s1 * delta[z])
        dotC[z] = sig3**(s1 * delta[z])
        dotD[z] = sig4**(s2 * delta[z])
        dotE[z] = sig5**(s2 * delta[z])
        dotF[z] = sig6**(delta[z] * s1)
        dotG[z] = sig6**(delta[z] * s2)
        dotH[z] = sig7**(delta[z] * s1)
        dotI[z] = sig7**(delta[z] * s2)
        dotJ[z] = (sig7**((delta[z] * -t) + ((theta * delta[z]) * (tagc * t))))
        dotK[z] = sig7**((theta * delta[z]) * (M * t))
        dotL[z] = sig7**((theta * delta[z]) * t)
        dotM[z] = sigK**(-t * (theta * delta[z]))
        sumN[z] = (s2 * delta[z])

    verifySigsRecursive(verifyArgsDict, group, incorrectIndices, 0, N, A,
                        delta, dotA, dotB, dotC, dotD, dotE, dotF, dotG, dotH,
                        dotI, dotJ, dotK, dotL, dotM, sumN)

    return incorrectIndices