| Summary |
The Somewhat Simplified Solitaire (SSSolitaire) Encryption Algorithm --
Bruce Schneier created the card-deck-based Solitaire encryption
algorithm for Neal Stephenson's novel "Cryptonomicon." A
slightly reduced version of Solitaire requires little more than basic
list operations and provides an introduction to encryption.
|
Topics
|
Linear data structures; encryption.
|
Audience
|
Accessible by students from late CS1; more appropriate for CS2.
|
Difficulty
|
Moderate
|
Strengths
|
What I like about the assignment is
that it is inspired by an algorithm that is a key element in
a work of fiction. Not only does implementing the algorithm
give the students exposure to encryption and practice with
list manipulation, it can also encourage students to pick up
the novel!
|
Weaknesses
|
Simplifying Solitaire no doubt creates an algorithm that is
less resistant to cryptographic attack, but for CS1/CS2 students
that isn't much of a problem.
|
Dependencies
|
Students need to be able to handle list manipulations, perform
input from a text file (if they will be expected to read card
decks from a file), and accept that large, complex algorithms
are often merely composed of small, simple algorithms.
|
Variants
|
Here are three ideas: (1) Vary the number of cards in the
deck. I use 28, which works well with the upper-case letters.
but one could use 38 to include decimal digits.
(2) The algorithm steps can be adjusted in any number of ways.
(3) More advanced students could perform basic statistical
analyses of the algorithm or any variation. See the PDF of the
talk for some additional ideas.
|