Passive attack
In cryptography a passive attack on a communications system is one in which the attacker only eavesdrops; he may read messages he is not supposed to see, but he does not alter messages. This contrasts with an active attack in which the attacker may create, forge, alter, replace or reroute messages.
There are three passive attacks that will in theory break any cipher; variants of these work for either block ciphers or stream ciphers:
- brute force attack — try all possible keys
- algebraic attack — write the cipher as a system of equations and solve for the key
- code book attack — collect all possible plaintext/ciphertext pairs for a block cipher, or the entire pseudorandom stream until it starts repeating for a stream cipher
However, all of those attacks are spectacularly impractical against real ciphers. Brute force and algebraic attacks require the attacker to do far too much work. For a code book attack, he needs far too much data — a huge collection of intercepts, all encrypted with the same key. If the cipher user changes keys at reasonable intervals, a code book attack is impossible.
A meet-in-the-middle attack is quite effective if it can be used, but it cannot be used against most ciphers.
Two passive attacks — linear cryptanalysis and differential cryptanalysis — are very powerful. They are the only known attacks that break DES with less effort than brute force, and are the most powerful known general-purpose attacks against block ciphers. Variants of them have also been applied against stream ciphers and cryptographic hashes. Both, however, require large samples of material encrypted with a single key, so frequent re-keying is a defense.
There are are whole range of other passive attacks; see cryptanalysis.