def METHOD_NAME(self, input):
    print("SIGNER state #3")
    u = self.group.random()        
    s = self.group.random()        
    d = self.group.random()        
    g = input.get('g')
    y = input.get('y')
    str = "info"
    msg = integer(SHA2(str))
    z = (msg ** ((p - 1)/q)) % p
    a = g ** u
    b = (g ** s) * (z ** d) 
    Protocol.store(self, ('u', u), ('s', s), ('d', d))
    Protocol.setState(self, 5)
    return { 'a':a, 'b':b, 's':s }