Side Channel attacks leverage information gained from observing or interacting with a system in a way other than anticipated by its creators. Often this is done to infer information about encryption keys or other secret information.
Some of the most common side channel attack vectors are:
- Timing
- Power monitoring
- Error handling analysis
Examples for the mentioned include:
- AES cache timing attack to determine encryption keys (very good paper by DJ Bernstein)
- Differential power analysis against DES to determine encryption keys (famous paper by P Kocher)
- RFID passports' error handling is exploited to infer nationality -> privacy breach (link)
While Wikipedia states that:
... a side-channel attack is any attack based on information gained from the physical implementation of a cryptosystem ...
I would argue (along with Bernstein and others) that side channel weaknesses may also emerge from design. In the AES example this is due to the fact that it is pretty much infeasible to write constant-time performing code for general computing while maintaining efficiency.
So to come back to your question; while you exploit a side channel attack in an implemented system, the root cause for its existence cannot generally be attributed to implementation only. You will have to look at a specific system and its implementations, and you may find that the answer to the question depends largely on where you place the boundary between design and implementation.
(If the design of AES had guaranteed static computing times, the timing attack would not have been feasible on any correct implementation as an example...)
You may, however, have differing implementations of AES which are or are not vulnerable to a timing attack, to answer your question about systems A & B (System A may enforce static computing times while B does not).
With a well-defined attacker model I would say that you could define a side channel resistant algorithm. Please clarify that question tough - not sure I understood you fully..
Edit: Some more fun and interesting reading in this brief and easily readable article. :)
Side channels very much depend on both the system setup and the attacker. Although it may be possible to perform a differential power analysis attack e.g. say on a TPM which holds a server's private keys, a standard attacker would not be able to exploit this over the Web due to the physical presence requirement.
Mitigations therefore often try to deny access to side channel information (e.g. casing, em-shielding, etc.) rather than eliminating any kind of leakage.
As so often in security, all depends on your attacker model...
– Karl Hardr Feb 10 '15 at 18:09