The Blowfish Encryption Algorithm
Modern embedded systems need data security more than ever before. Our PDAs store personal email and contact lists; our GPS receivers (and soon, our cell phones) keep logs of our movements; our automobiles record our driving habits. On top of that, users demand products that can be reprogrammed during normal use, allowing them to supplement bug and feature lists as new firmware images become available. What a convenient backdoor for user-defined and user-implemented, er, upgrades!
Data security techniques have a reputation for being computationally intensive, mysterious, and fraught with intellectual property concerns. While some of this is true, there are also straightforward, public domain techniques that are both robust and lightweight. One such technique, an algorithm called Blowfish, is perfect for embedded work.