Name |
Cryptanalysis |
|
Likelyhood of attack |
Typical severity |
Low |
Very High |
|
Summary |
Cryptanalysis is a process of finding weaknesses in cryptographic algorithms and using these weaknesses to decipher the ciphertext without knowing the secret key (instance deduction). Sometimes the weakness is not in the cryptographic algorithm itself, but rather in how it is applied that makes cryptanalysis successful. An attacker may have other goals as well, such as: Total Break (finding the secret key), Global Deduction (finding a functionally equivalent algorithm for encryption and decryption that does not require knowledge of the secret key), Information Deduction (gaining some information about plaintexts or ciphertexts that was not previously known) and Distinguishing Algorithm (the attacker has the ability to distinguish the output of the encryption (ciphertext) from a random permutation of bits). |
Prerequisites |
The target software utilizes some sort of cryptographic algorithm. An underlying weaknesses exists either in the cryptographic algorithm used or in the way that it was applied to a particular chunk of plaintext. The encryption algorithm is known to the attacker. An attacker has access to the ciphertext. |
Execution Flow |
Step |
Phase |
Description |
Techniques |
1 |
Explore |
An attacker discovers a weakness in the cryptographic algorithm or a weakness in how it was applied to a particular chunk of plaintext. |
|
2 |
Exploit |
An attacker leverages the discovered weakness to decrypt, partially decrypt or infer some information about the contents of the encrypted message. All of that is done without knowing the secret key. |
|
|
Solutions | Use proven cryptographic algorithms with recommended key sizes. Ensure that the algorithms are used properly. That means:
1. Not rolling out your own crypto; Use proven algorithms and implementations.
2. Choosing initialization vectors with sufficiently random numbers
3. Generating key material using good sources of randomness and avoiding known weak keys
4. Using proven protocols and their implementations.
5. Picking the most appropriate cryptographic algorithm for your usage context and data |
Related Weaknesses |
CWE ID
|
Description
|
CWE-327 |
Use of a Broken or Risky Cryptographic Algorithm |
CWE-1204 |
Generation of Weak Initialization Vector (IV) |
CWE-1240 |
Use of a Cryptographic Primitive with a Risky Implementation |
CWE-1241 |
Use of Predictable Algorithm in Random Number Generator |
CWE-1279 |
Cryptographic Operations are run Before Supporting Units are Ready |
|
Related CAPECS |
CAPEC ID
|
Description
|
CAPEC-20 |
An attacker, armed with the cipher text and the encryption algorithm used, performs an exhaustive (brute force) search on the key space to determine the key that decrypts the cipher text to obtain the plaintext. |
CAPEC-192 |
An adversary engages in activities to decipher and/or decode protocol information for a network or application communication protocol used for transmitting information between interconnected nodes or systems on a packet-switched data network. While this type of analysis involves the analysis of a networking protocol inherently, it does not require the presence of an actual or physical network. |
|
Taxonomy: OWASP Attacks |
Entry ID
|
Entry Name
|
Link |
Cryptanalysis |
|