def METHOD_NAME(self, alphabet):
    g, z, h_start, h_end = group.random(G1, 4)
    h = {'start':h_start, 'end':h_end }
    for sigma in alphabet:
        h[str(sigma)] = group.random(G1)
    alpha = group.random(ZR)
    msk = g ** -alpha
    mpk = {'egg':pair(g, g) ** alpha, 'g':g, 'z':z, 'h':h }
    return (mpk, msk)