Assumptions about the powers of the Adversary

CS 463 Lecture, Dr. Lawlor

The big problems with keeping secrets are:
  1. It's pretty easy to capture data going across networks.  "Packet sniffer" tools like Wireshark allow you to see every byte in every packet that crosses your network card.  This means if you send secrets across the network, they will get out.
  2. It's also pretty easy to "spoof" network data, fabricating packets either entirely on your own, or based on captured data. 
  3. It's tedious but straightforward to reverse-engineer the operation of computers.  Some languages like Java make this really easy (the bytecodes are very friendly to analysis); it's more work yet still entirely possible in a compiled-to-native language like C++; and hardware solutions can require sophisticated electrical equipment, but are still vulnerable.  This means if you encode the secret into a computer program or hardware, or if the security of the encryption scheme depends on a secret algorithm, you're sunk.
  4. It's common the attacker actually knows the plaintext, or some part of it (for example, top secret data might begin with TOP SECRET).  Knowing both the plaintext and ciphertext makes cryptanalysis much easier.
  5. It's common to assume the attacker can even generate the plaintext, allowing them to do differential analysis.  For example, an ATM's encrypted communication with the bank during the attacker's legitimate transaction is bound to include the transaction amount, which can be carefully chosen by the attacker (e.g., deposit a series of checks in the amounts of $1, $10, $100, etc).
And of course, it's even worse than that:
  1. Laptops get stolen.  Tom Cruise sneaks into your facility.  The truckbomb is just a decoy so the fake "police" can get into your data center.
  2. Hardware is surprisingly leaky to the sufficiently motivated.  DRAM can retain data for as long as days.  There are serious issues with erasing both magnetic drives (thermal recalibration shifts and bit-edge effects) and flash storage.  Electromagnetic radiation can transmit secrets for miles: see TEMPEST standards for radio transmission shielding (CRT displays are notorious for this).  Clever folks with telescopes have reconstructed ethernet packets from the blinking pattern of the activity LED.
  3. You can't even trust your own employees ("the insider threat").  Maybe one of 'em is a mole working for the other side.  Maybe they're being blackmailed, or having mental health issues.  Maybe they're OK, but their laptop or smartphone is infected with targeted spyware. 

There's a sort of sliding scale of attacker sophistication in the crypto world, ranging from realistic "cipher capable of reminding a script kiddie that he didn't actually want to read your email" to the science fiction "cipher capable of resisting the net compute power of the entire planet throughout hundreds of years of Moore's law."  Realistically, past a certain point additional crypto security is not useful, because it would be easier to just buy your secrets--would you turn down a million dollars?  How about a ham sandwich, after they've starved you for a week?