Implementation and Algorithm Attacks
7 slides · 2 min read · Domain 3
Implementation and Algorithm Attacks
Implementation Attacks
The main types of implementation attacks include the following:
Side Channel Attacks
These are passive attacks that rely on a physical attribute of the implementation such as power consumption and emanations. These attributes may be able to be studied to determine the secret key and the algorithm function of the cryptosystem. Some examples of popular side channels include timing analysis and electromagnetic differential analysis.
Fault Analysis Attacks
These attempt to force the system into an error state to gain erroneous results. By forcing an error, gaining the results and comparing it with known good results, an attacker may learn clues about the secret key and the algorithm.
Probing Attacks
These attempt to watch the circuitry surrounding the cryptographic module in the hope that the other components of the architecture will disclose information about the key or the algorithm. Sometimes, new hardware may be added to the cryptographic module to observe and inject information to again possibly gain valuable information.
Algebraic Attacks
Algebraic attacks are a class of attacks that rely on the math structure of certain block ciphers.
Hash functions will produce message digests from plaintext. Since the hash function is a one-way process, it is not possible to determine the plaintext from the hash itself. However, there are two ways to determine a given plaintext from its hash:
Basically, the attacks try to find correlations between certain elements to find weaknesses in multiple encryption cycles within the cryptosystem itself to try and yield the correct key.
- Hash each plaintext until matching hash is found.
- Hash each plaintext, but store each generated hash in a table that can be used as a lookup table so hashes do not need to be generated again.
A rainbow table is a look-up table of sorted hash outputs. The idea here is that storing precomputed hash values in a rainbow table that one can later refer to saves time and computer resources when attempting to decipher the plaintext from its hash value.
These can be very helpful in attacks against password files and other implementations where hashes, or hashed versions of information, are stored.
Text on this slide
Password abc123 football qwerty password orange hello
Hash
1dc35efbc5f622502e33e6fb04352731 e10adc3949ba59abbe56e057f20f883e
37b4e2d82900d5e94b8da524fbeb33c0 d8578edf8458ce06fbc5bb76a58c5ca4
5f4dcc3b5aa765d61d8327deb882cf99 fe01d67a002dfa0f3ac084298142eccd
5d41402abc4b2a76b9719d911017c592
Rainbow Table
