def METHOD_NAME(self, secparam=0):
    if group.groupSetting() == 'integer':
        if group.p == 0 or group.q == 0:
            group.paramgen(secparam)
        p = group.p
        g1, g2 = group.randomGen(), group.randomGen()
    elif group.groupSetting() == 'elliptic_curve':
        group.paramgen(secparam)
        g1, g2 = group.random(G), group.random(G)
    x1, x2, y1, y2, z = group.random(), group.random(), group.random(), group.random(), group.random()		
    c = ((g1 ** x1) * (g2 ** x2))
    d = ((g1 ** y1) * (g2 ** y2)) 
    h = (g1 ** z)
    pk = { 'g1' : g1, 'g2' : g2, 'c' : c, 'd' : d, 'h' : h }
    sk = { 'x1' : x1, 'x2' : x2, 'y1' : y1, 'y2' : y2, 'z' : z }
    return (pk, sk)