Introduction
PuffAdder is a python implementation of the Blowfish encryption algorithm created by Bruce Schneier.
Blowfish is a block cipher alogrithm, created by Bruce Schneier. Blowfish was created to be:
- Fast
- Compact
- Simple
- Variably Secure (key length is variable up to 448 bits).
To find out more about Blowfish and encryption in general; Bruce Schneier's Applied Cryptography is one of the best reference books on the subject.
Blowfish is a non patented encryption alogrithm. Bruce Schneier has placed some code that implements the Blowfish algorithm in the public domain: Schneier's Blowfish Download Page.
PuffAdder uses the Blowfish algorithm, with some extra bits tagged on.
Audience
People just getting interested in cryptography, will probably derive the most value from this site.
PuffAdder was not written for performance optimization, it was written to understand how encryption works, in particular the Blowfish block cipher.
There are some data tables, which I imagine some will find useful, as opposed to typing them in by hand.
The code is supplied as is, with no warranty as to usability or correctness. PuffAdder passes the tests as outlined by Bruce Schneier for Blowfish, to the best of my knowledge, but if you are going to use this code as a base in a commercial product or to protect anything valuable, the responsiblility of verifying the veracity of the code is the user's or implementor's own.
Sections
The Source Code page contains the source of Puff Adder along with a commentary.
The Download page contains the licence of usage along with a link to download the PuffAdder.py file.
