G = IntegerModRing(17627) g = G(6) g.multiplicative_order() xA = G.random_element() xB = G.random_element() hA = g^xA hB = g^xB hA hB r=G.random_element() R = g^r S=hB^r*m (R,S) mp = S/(R^xB) mp