The Somewhat Simplified Solitaire Algorithm

The Somewhat Simplified Solitaire Algorithm

The Somewhat Simplified Solitaire Algorithm Lester I. McCann [email protected] Computer Science Department The University of Arizona Tucson, AZ ACM SIGCSE Nifty Assignments Panel March 4, 2006 SIGCSE 2006 – p.1/21 Who Is This Guy? SIGCSE 2006 – p.2/21 Who Is This Guy? Best-selling Author Neal Stephenson http://www.nealstephenson.com SIGCSE 2006 – p.2/21 What Has He Written? (among others) SIGCSE 2006 – p.3/21 Cryptonomicon • A Combination of Historical & Modern-Day Fiction (c) 1999 SIGCSE 2006 – p.4/21 Cryptonomicon • A Combination of Historical & Modern-Day Fiction • Threads Joined By Cryptography (c) 1999 SIGCSE 2006 – p.4/21 Cryptonomicon • A Combination of Historical & Modern-Day Fiction • Threads Joined By Cryptography • And After ∼ 800 pages ... (c) 1999 SIGCSE 2006 – p.4/21 Cryptonomicon • A Combination of Historical & Modern-Day Fiction • Threads Joined By Cryptography • And After ∼ 800 pages ... • ...The Pontifex Transform Is Used (c) 1999 SIGCSE 2006 – p.4/21 Pontifex == Solitaire www.schneier.com • In reality, Pontifex is really security expert Bruce Schneier’s Solitaire cryptosystem. • Schneier describes it in Cryptonomicon’s appendix SIGCSE 2006 – p.5/21 Solitaire? A Cryptosystem?? SIGCSE 2006 – p.6/21 Solitaire? A Cryptosystem?? No, not that Solitaire ... SIGCSE 2006 – p.6/21 Bruce Schneier’s Solitaire • So named because it is based on manipulations of playing cards SIGCSE 2006 – p.7/21 Bruce Schneier’s Solitaire • So named because it is based on manipulations of playing cards ◦ Who would question an innocent deck of cards? SIGCSE 2006 – p.7/21 As Tested on MythBusters! by Ricky Jay, (c) 1977 SIGCSE 2006 – p.8/21 Bruce Schneier’s Solitaire • So named because it is based on manipulations of playing cards ◦ Who would question an innocent deck of cards? ... OK, we’ll ignore that. SIGCSE 2006 – p.9/21 Bruce Schneier’s Solitaire • So named because it is based on manipulations of playing cards ◦ Who would question an innocent deck of cards? ... OK, we’ll ignore that. • Sender and Receiver begin with matched decks • Each application of Solitaire generates a sequence of keystream values, each in the range [1..26] • Roughly: ◦ Plaintext + keystream = Ciphertext ◦ Ciphertext - keystream = Plaintext SIGCSE 2006 – p.9/21 Keystream Algorithm: Step 1 of 5 Step 1: Exchange ‘A’ Joker with Following Card SIGCSE 2006 – p.10/21 Keystream Algorithm: Step 2 of 5 Step 2: Exchange ‘B’ Joker with Following Two Cards SIGCSE 2006 – p.11/21 Keystream Algorithm: Step 3 of 5 Step 3: “Triple Cut” SIGCSE 2006 – p.12/21 Keystream Algorithm: Step 4 of 5 14375826 SIGCSE 2006 – p.13/21 Keystream Algorithm: Step 4 of 5 1437582 6 Step 4: Needs More Words Than I Have Space! SIGCSE 2006 – p.13/21 Keystream Algorithm: Step 5 of 5 21437586 Step 5: SIGCSE 2006 – p.14/21 Keystream Algorithm: Step 5 of 5 v=2 1437586 Step 5: 1st Card’s Value SIGCSE 2006 – p.14/21 Keystream Algorithm: Step 5 of 5 v=2 1437586 1 2 v+1 4 ... Step 5: 1st Card’s Value + 1 ⇒ Index SIGCSE 2006 – p.14/21 Keystream Algorithm: Step 5 of 5 v=2 1 4 3 7 5 8 6 1 2 v+1 4 ... Step 5: 1st Card’s Value + 1 ⇒ Index ⇒ Keystream Value = 4 SIGCSE 2006 – p.14/21 Encryption Plaintext: N IFTY ⇓⇓⇓⇓⇓ Letter Values: 14 9 6 20 25 Keystream Sequence: 42415 Sums: 18 11 10 21 30 Wrap: 18 11 10 21 4 ⇓⇓⇓⇓⇓ Ciphertext: RK JTD SIGCSE 2006 – p.15/21 Decryption Ciphertext: RK JTD ⇓⇓⇓⇓⇓ Letter Values: 18 11 10 21 4 Keystream Sequence: 42415 Differences: 14 9 6 20 -1 Wrap: 14 9 6 20 25 ⇓⇓⇓⇓⇓ Plaintext: N IFTY SIGCSE 2006 – p.16/21 Why “Somewhat Simplified”? • Schneier has links to implementations in ∼ 12 languages SIGCSE 2006 – p.17/21 Why “Somewhat Simplified”? • Schneier has links to implementations in ∼ 12 languages • My Standard Adjustments: ◦ Steps 1 and 2: No special bottom-of-deck behavior · Have students assume that the deck is circular SIGCSE 2006 – p.17/21 Why “Somewhat Simplified”? • Schneier has links to implementations in ∼ 12 languages • My Standard Adjustments: ◦ Steps 1 and 2: No special bottom-of-deck behavior · Have students assume that the deck is circular ◦ Use a different deck; for example: · Half-deck (only two suits) · Pinochle deck (need to add jokers) SIGCSE 2006 – p.17/21 Why “Somewhat Simplified”? • Schneier has links to implementations in ∼ 12 languages • My Standard Adjustments: ◦ Steps 1 and 2: No special bottom-of-deck behavior · Have students assume that the deck is circular ◦ Use a different deck; for example: · Half-deck (only two suits) · Pinochle deck (need to add jokers) ⇒ Unwise cryptographically ...but so what? SIGCSE 2006 – p.17/21 Adoption Issues • Skill Prerequisites: ◦ List Manipulation ◦ Char ⇔ ASCII ◦ Text File I/O (?) SIGCSE 2006 – p.18/21 Adoption Issues • Skill Prerequisites: ◦ List Manipulation ◦ Char ⇔ ASCII ◦ Text File I/O (?) • Implementation Decisions: ◦ Arrays or Linked Lists? ◦ Card Representation? ◦ Must state be retained? SIGCSE 2006 – p.18/21 Adoption Issues • Skill Prerequisites: ◦ List Manipulation ◦ Char ⇔ ASCII ◦ Text File I/O (?) • Implementation Decisions: ◦ Arrays or Linked Lists? ◦ Card Representation? ◦ Must state be retained? ∴ Applicable to CS0, CS1, CS2, ... SIGCSE 2006 – p.18/21 So Why Is This “Nifty”? • Flexible — Can assign entire system or just parts • Provides a gentle introduction to cryptosystems • Encourages distributed testing (message exchange) • Would be a fun algorithm to animate SIGCSE 2006 – p.19/21 So Why Is This “Nifty”? • Flexible — Can assign entire system or just parts • Provides a gentle introduction to cryptosystems • Encourages distributed testing (message exchange) • Would be a fun algorithm to animate • Just might encourage students to read a novel! , SIGCSE 2006 – p.19/21 Image Credits • Neal Stephenson: Bela Bollobas • Bruce Schneier: dk.compulenta.ru • Stephenson book covers: barnesandnoble.com • Klondike: AisleRot 2.10.0 / Jonathan Blandford • Cards As Weapons: amazon.com • Card Images: david.bellot.free.fr • UA Campus: The UA Computer Science Webcam SIGCSE 2006 – p.20/21 Any Quick Questions? [email protected] These full–screen PDF slides were created in LATEX using the prosper class. SIGCSE 2006 – p.21/21.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    38 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us