1. A system for discovering timing attack vulnerabilities in a computer software application, the system comprising: a microprocessor including: a static analyzer configured to statically analyze instructions of a computer software application to identify a plurality of possible execution paths traversing any of the instructions; a cost calculator configured to calculate, for each of the possible execution paths, a cost associated with the execution of the instructions traversed by the possible execution path; a cost comparator configured to compare the costs of at least two of the possible execution paths having inputs of the same size; and a vulnerability identifier configured to identify as a timing attack vulnerability any of the compared possible execution paths whose cost differs, by at least a predetermined amount, from the cost of any other of the compared possible execution paths.