The Laws of Cryptography:
List of Java Programs
by Neal R. Wagner
Copyright © 2001 by Neal R. Wagner. All rights reserved.
NOTE: This site is obsolete. See book draft (in PDF):
Part I: Preliminaries
- Cryptographers' Favorites
- Demonstration of Xor
- Formulas for logs
- Fermat's Theorem Illustrated
- Cryptographers' Favorite Algorithms
- Basic GCD Algorithm
- Extended GCD Algorithm
- Extended GCD Algorithm (debug version)
- Testing Two Exponential Algorithms
Part II: Coding and Information
Theory
- Coding and Information Theory
- Formula for Channal Capacity
- Table of Channal Capacities
- Inverse of the Channal Capacity
formula
- Table of Repetition Codes
- Visualizing Channel Capacity
- Simulating Shannon's
Random Codes
- Graph displaying simulation results:
Postscript
PDF
Postscript file
- The Huffman Code for Compression
- The Huffman Algorithm
- Program to Color Java Source Programs
- Two Distinct Huffman Codes
for the Same File
- The Hamming Code for Error Correction
- Coping with Decimal Numbers
- U.S. Banking Scheme
- IBM Scheme
- ISBN mod 11 Scheme
- Mod 97 Scheme
- Hamming mod 11 Scheme, Error
Correction
- Hamming mod 11 Scheme, Double Errors
- Verhoeff's Decimal Detection
- Use of the
Dihedral Group
- Verhoeff's Scheme
Part III: Introduction to
Cryptography
- Cryptograms and Terminology
- Cryptogram Program
- The One-Time Pad
- Caesar Cipher
- Beale Cipher
- Generate a One-time Pad
- The Pad Generated
Postscript
PDF
- Wheels used to encrypt/decrypt with a one-time pad:
Outer wheel: Postscript,
PDF,
Postscript source
Inner wheel: Postscript,
PDF,
Postscript source
- Conventional Block Cipher Cryptosystems
- Conventional Stream Cipher Cryptosystems
- Conventional Block Cipher Cryptosystems
- Conventional Stream Cipher Cryptosystems
Part IV: Public Key
Cryptography
- Public Key Distribution Systems
- Public Key Cryptography
- The RSA Cryptosystem
- RSA Implementation
- Faster RSA, Using Chinese Remainder
Theorem
- Rabin's Version of RSA
- Square Roots mod n = p*q
- Elliptic Curve Cryptosystems
- Other Public Key Cryptosystems
Part V: Random Number
Generation
- Traditional Random Number Generators
- Perfect Random Number Generators
- Random Numbers From Chaos Theory
- The Logistic Lattice as a RNG
Part VI: The Advanced Encryption
Standard (AES)
- Introduction to the AES
- The Finite Field GF(256)
- Generate Multiplication Tables
- Compare Multiplication Results
- The S-Boxes
- Generate AES Tables
- Key Expansion
- Encryption
- AES Encryption
- Decryption
- AES Decryption
- Test Runs of the AES Algorithm
Part VII: Hash Functions and
Digital Signatures
- Hash Functions
- Cryptographically Secure Hash Functions
- Digital Signatures
Part VIII: Randomization
Techniques
- Simple Randomization
- More Complex Tricks
- The Rip van Winkle Cipher and Rabin's Scheme
Part IX: Key distribution and
Threshold Schemes
- Introduction
- Symmetric-key Distribution Systems Using Trusted Third Parties
- Public Key Distribution Systems Without Trusted Third Parties
- Threshold Schemes
Revision date: 2002-02-25.
(Please use
ISO 8601, the International Standard.)