def METHOD_NAME(self, n):
    g1 = group.random(G1)
    g2 = group.random(G2)
    y = group.random(ZR)
    Y = pair(g1, g2) ** y
    T = {}; t = {}; V = {}; v = {}; R = {}
    r = {}; M = {}; m = {}
    for i in range(0, n):
        t[i] = group.random(ZR)
        v[i] = group.random(ZR)
        r[i] = group.random(ZR)
        m[i] = group.random(ZR)
        T[i] = g1 ** t[i]
        V[i] = g1 ** v[i]
        R[i] = g1 ** r[i]
        M[i] = g1 ** m[i]
    pk = {'g1':g1, 'g2':g2, 'n':n, 'Y':Y, 'T':T, 'V':V, 'R':R, 'M':M}
    msk = {'y':y, 't':t, 'v':v, 'r':r, 'm':m}
    return (pk, msk)