Abstract: An authentication system and method axe provided, the method comprising, storing a user identification code associated with said user, generating a plurality of functions for producing a pass code based on at least one input by a user, said at least one input comprising said user identification code, storing at least one function and associating said function with a user, generating an application adapted to implement said at least one function on the user device, supplying the application to said user device, generating a transaction code associated with said transaction and supplying the transaction code to said application; and receiving a pass code for said transaction from the user device and authenticating the transaction on the basis of the received pass code, the function associated with said user, the user identification code and the transaction code associated with said transaction.