Breaking refers to making a cryptographic function or system unusable, or discovering something that could render it unusable.
- Hash:
- Reproducing collisions in hashing functions will render a hash algorithm unusuable, if doing so is economically feasible (this basically means there’s a low work factor).
- Discovering a vulnerability in a hashing implementation that allows for a side-channel attack.
- Encryption system:
- Decrypting ciphertext without the key in an economically feasible fashion.
- When a private key is no longer secret
- When the implementation of the system allows for unauthorized disclosure of information
Key management concepts
Poor key management practices can lead to cryptanalytic attacks.
Key management refers to all management aspects of keys – creation, issuing, installing, changing, frequency of change, storing, controlling, recovering, and disposing, etc.
Dual control – the principle that a process, such as key recovery, is controlled by two separate functions or processes. For example, in films we often see the nuclear launch being controlled by two people with separate keys that must be activated at opposite ends of the room.
Split knowledge – the principle that a cryptographic function requires two separate pieces of knowledge in order to carry out. For example, if symmetric key backups were encrypted onto a tape and stored offsite, recovery of those keys might be controlled through decryption using a password known by one person and a combination lock to the storage container known by another person. The term “split” may not require splitting only into two, for example, the keys could also be stored in a warehouse that has a tape storage room with a keypad lock that only the third person holds (and nobody else).
Key escrow – refers to entrusting a third party with a key, requires explicit conditions for release.
DRM related to cryptography – weighing the balance between applying cryptographic protection to prevent piracy while also ensuring fair use of the media.
Imposition of restrictions (Wassenar agreement) – cryptography can be considered a weapon, thus countries limit the strength of cryptographic tools for import/export. Companies can make different versions of their cryptographic products to meet the needs of various countries.
Cryptanalytic attack methods (cryptanalysis)
Cryptanalysis is used to perform various attacks on cryptography, usually to obtain the key, and ultimately to circumvent the protections and services that cryptography provides.
Brute force – repeated attempts at guessing the key; the attacker knows the algorithm.
Ciphertext only – the attacker only has ciphertext; considered the most difficult type of attack.
Known plaintext – as the phrase indicates, the attacker has access to both plaintext and ciphertext along with the algorithm, thus the relationship between the two can be analyzed to find the key to decrypt other messages that were encrypted using the same key.
Chosen plaintext – similar to known plaintext, however the attacker has access to the cryptosystem or encryption device/software and runs a chosen piece of plaintext through the cryptosystem to view the results.
Adaptive chosen plaintext – similar to chosen plaintext, however the attacker can change the input over and over just to see what effect it has on the ciphertext.
Chosen ciphertext – decrypting selected pieces of ciphertext
Adaptive chosen ciphertext – decrypting selected pieces of ciphertext, and modifying the ciphertext repeatedly to see the results. Assumes access to the cryptosystem.
Linear cryptanalysis – uses something called linear approximation/equations with known plaintext to analyze the behavior of the block cipher.
Differential cryptanalysis – uses chosen plaintext and then tries to compute the differences between ciphertexts to obtain the key.
Side channel – looks at the physical attributes: sound, power usage, temperature, etc.
Fault analysis – tries to force the cryptosystem into an error state and then compares the bad results with the good results to learn about the algorithm and the key.
Probing – looks at the overall architecture including circuitry and additions to the cryptosystem in order to gain information on the key.
Replay – repeatedly sending input files in order to damage processing.
Algebraic attack – relies on math structure of the block cipher.
Rainbow table – a table of hash outputs, commonly used against password files.
Frequency analysis – examining the frequency of certain pieces of ciphertext in order to decipher the frequency of English letters or words that are common (e.g. “the”).
Birthday attack – there is a 50% chance of any two people having the same birthday in a room of 23 individuals. Without getting into the math, the intent of a birthday attack is to allow the discovery of collision capabilities in order to change message contents while keeping the same digest, or to incite doubt on the integrity of the original message.
Factoring attack – tries to find the private key through solving the factoring of public keys (aimed at RSA specifically because it uses the product of large prime numbers to generate public/private keys).
Dictionary attack – encrypts all common or simple/dictionary-type passwords (such as “12345” or “fortyniners” etc.) and compares them to password file hashes. Sometimes this attack uses rainbow tables.
Attack on random number generators – successful on certain crypto implementations such as WEP, where the random number generator, or IV, was easy to predict.
Temporary files – attacking the temp files used by a cryptosystem where weak security is applied to volatile memory and storage location of temporary files (data remanence).Social engineering – the art of deception to obtain cryptographic information, such as the key, or password to obtain keys.