SolitaireCryptoDemo 1.2

A visual demonstration of the steps involved in generating a keystream using Bruce Schneier's Solitaire encryption algorithm.

Featuring smooth animations and descriptions of all steps.

For a small python implementation of the algorithm, check out this.


How to use?

Type "python" to start the demo.

You can also use several commandline options:

  • -r - Setup a shuffled deck.
  • -u - Setup an unkeyed deck.
  • -k KEY - Setup a keyed deck using the algorithm described at
  • -o - Print found keys to standard out.
  • -h - Display this text.


  • python
    starts the demo with a default deck (keyed with "CRYPTONOMICON").
  • python -r
    starts the demo with a shuffled deck.
  • python -u -o
    starts the demo with an unkeyed deck and prints the keys.
  • python -k MYSECRETKEY
    starts the demo with a keyd deck using the passphrase"MYSECRETKEY".

New since 1.1

  • Fixed some small bugs and misspellings.
  • Modified the folder structure.
  • Added several command line arguments for setting up the initial deck.
  • Added a command line argument for outputting the keystream. For debugging purposes.
  • Added a title showing the current step of the algorithm.

New since 1.0

  • Fixed a serious bug in the key finding part of the algorithm. (Thanks to Thomas Knappe for pointing this out!)
  • Fixed some other bugs that I found when tracking down the first one.
  • Changed the key output to show the actual key value instead of the modulus 26 value. To be more compliant to the algorithm description.

Related links


Comment this project:

Your name:
Your email (hidden):
Enter the validation code :
Private! (visible for webmaster only)

No messages yet.