1. A method of authenticating a user for performing a transaction comprising the steps of: (a) receiving on a first authentication server data representing unique knowledge of the user, wherein data representing unique knowledge of the user is related to a sequential selection of pictures presented to the user; (b) receiving on the authentication server a hardware profile, the hardware profile being associated with the user; (c) comparing on a second evaluation server the received data representing unique knowledge of the user with previously stored data representing unique knowledge of the user; (d) comparing on the second evaluation server the received hardware profile with a previously stored hardware profile associated with the user by calculating a percent difference of the previously stored hardware profile with the received current hardware profile using the Levenshtein Distance equation; (e) allowing the transaction to go forward if both the received data representing unique knowledge of the user is authenticated by step (c) and the difference between the received hardware profile and the previously stored hardware profile from the result of step (d) is less than a set tolerance; and (f) if the percentage difference is not within the set tolerance, the transaction does not proceed.