def METHOD_NAME(self):
    g2 = group.random(G1)
    g1 = group.random(G2)
    alpha = group.random(ZR)
    #generate the 4*4 dual pairing vector spaces.
    d11, d12, d13, d14 = group.random(ZR),group.random(ZR),group.random(ZR),group.random(ZR)
    d21, d22, d23, d24 = group.random(ZR),group.random(ZR),group.random(ZR),group.random(ZR)
    d31, d32, d33, d34 = group.random(ZR),group.random(ZR),group.random(ZR),group.random(ZR)
    d41, d42, d43, d44 = group.random(ZR),group.random(ZR),group.random(ZR),group.random(ZR)
    D11, D12, D13, D14 = group.init(ZR),group.init(ZR),group.init(ZR),group.init(ZR)
    D21, D22, D23, D24 = group.init(ZR),group.init(ZR),group.init(ZR),group.init(ZR)
    D31, D32, D33, D34 = group.init(ZR),group.init(ZR),group.init(ZR),group.init(ZR)
    D41, D42, D43, D44 = group.init(ZR),group.init(ZR),group.init(ZR),group.init(ZR)
    one = group.random(ZR)
    [D11, D12, D13, D14] = GaussEliminationinGroups([[d11, d12, d13, d14, one],
                                    [d21, d22, d23, d24, group.init(ZR, 0)],
                                    [d31, d32, d33, d34, group.init(ZR, 0)],
                                    [d41, d42, d43, d44, group.init(ZR, 0)]])
    [D21, D22, D23, D24] = GaussEliminationinGroups([[d11, d12, d13, d14, group.init(ZR, 0)],
                                    [d21, d22, d23, d24, one],
                                    [d31, d32, d33, d34, group.init(ZR, 0)],
                                    [d41, d42, d43, d44, group.init(ZR, 0)]])
    [D31, D32, D33, D34] = GaussEliminationinGroups([[d11, d12, d13, d14, group.init(ZR, 0)],
                                    [d21, d22, d23, d24, group.init(ZR, 0)],
                                    [d31, d32, d33, d34, one],
                                    [d41, d42, d43, d44, group.init(ZR, 0)]])
    [D41, D42, D43, D44] = GaussEliminationinGroups([[d11, d12, d13, d14, group.init(ZR, 0)],
                                    [d21, d22, d23, d24, group.init(ZR, 0)],
                                    [d31, d32, d33, d34, group.init(ZR, 0)],
                                    [d41, d42, d43, d44, one]])
    #generate public parameters.
    #PP2 = (pair(g1, g2))**(alpha*one)
    PP2 = (pair(g2, g1))**(alpha*one)
    gd11 = g1**d11
    gd12 = g1**d12
    gd13 = g1**d13
    gd14 = g1**d14
    gd21 = g1**d21
    gd22 = g1**d22
    gd23 = g1**d23
    gd24 = g1**d24
    pk = { 'PP2':PP2, 'gd11':gd11, 'gd12':gd12, 'gd13':gd13, 'gd14':gd14,
           'gd21':gd21, 'gd22':gd22, 'gd23':gd23, 'gd24':gd24 }
    #generate private parameters
    sk = {'alpha': alpha, 'g2':g2,
           'D11':D11, 'D12':D12, 'D13':D13, 'D14':D14,
           'D21':D21, 'D22':D22, 'D23':D23, 'D24':D24}
    if(debug):
        print("Public parameters...")
        group.debug(pk)
        print("Secret parameters...")
        group.debug(sk)
    return (pk, sk)