Page Tools:
  • print-friendly version

Introduction to Cryptography with Java Applets

Author(s): David Bishop, Grinnell College
Details:
  • ISBN-13: 9780763722074
  • ISBN-10:0763722073
  • Hardcover    370 pages      © 2003
Price: International Sales $180.95 US List
Add to Cart Request a Review Copy

Overview

Introduction to Cryptography with Java Applets  covers the mathematical basis of cryptography and cryptanalysis, like linear diophantine equations, linear congruences, systems of linear congruences, quadratic congruences, and exponential congruences.  The chapters present theorems and proofs, and many mathematical examples.

Cryptography with Java Applets  also covers programming ciphers and cryptanalytic attacks on ciphers.  In addition many other types of cryptographic applications, like digest functions, shadows, database encryption, message signing, establishing keys, large integer arithmetic, pseudo-random bit generation, and authentication are included.  The author has developed various Java crypto classes to perform these functions, and many programming exercises are assigned to the reader.  The reader should be someone with a basic working knowledge of Java, but knowledge of number theory or cryptography is not necessary. What sets this Introduction to Cyrptography with Java Applets apart from other crypto books is the level of interactivity with the reader.  There are many Java applets on the World Wide Web that students can run from their computers to see various ciphers and other crypto concepts at work.  They do not need a Java compiler or interpreter to do this, just an Internet connection. 

ShowKey Features

Introduction to Cryptography with Java Applets takes a powerful approach of learning by examples.  The core concepts are illustrated to undergraduate students through extensive examples.
Typical cryptography textbooks either contain a lot of mathematics with no programming, or a lot of programming with very little math. Introduction to Cryptography with Java Applets balances the two subjects for true understanding.
Dr. Bishop decided that an approach should be taken which would allow readers to cover the mathematical material in the text, to see the code which implemented those principles, then to simply open their browser and click on an HTML file to view the concepts they had just learned.  The natural choice for this was to use Java applets--fully functional programs that run within a browser.  No other cryptography book offers this kind of interactivity.

Back to top

ShowTable of Contents

Chapter 1: A History of Cryptography

  • Codes
  • Monoalphabetic Substitution
  • Ciphers
  • Frequency Analysis on Caesar Ciphers
  • Frequency Analysis on Monoalphabetic Substitution Ciphers
  • Polyalphabetic Substitution Ciphers
  • The Vigenere Cipher and Code Wheels
  • Breaking Simple Vigenere Ciphers
  • The Kaisiski Method of Determining Key Length
  • The Full Vigenere Cipher
  • The Auto-Key Vigenere Cipher
  • The Running Key Vigenere Cipher
  • Breaking Auto Key and Running Key Vigenere Ciphers
  • The One-Time Pad
  • Transposition Ciphers
  • Polygram Substitution Ciphers
  • The Playfair Cipher
  • Breaking Simple Polygram Ciphers
  • The Jefferson Cylinder
  • Homophonic Substitution Ciphers
  • Combination Substitution/Transposition Ciphers
  • Exercises 

Chapter 2: Large Integer Computing 

  • Constructors
  • Comparison Methods
  • Arithmetic Methods
  • The Java BigInteger Class
  • Constructors
  • Methods
  • Exercises 

Chapter 3: The Integers

  • The Division Algorithm
  • The Euclidean Algorithm
  • Fundamental Theorem of Arithmetic
  • Exercises 

Chapter 4: Linear Diophantine Equations & Linear Congruences

  • Linear Diophantine Equations
  • Linear Congruences
  • Modular Inverses
  • Exercises 

Chapter 5: Linear Ciphers

  • The Caesar Cipher
  • Weaknesses of the Caesar Cipher
  • Affine Transformation Ciphers
  • Weaknesses of Affine Transformation Ciphers
  • The Vigenere Cipher
  • Block Affine Ciphers
  • Weaknesses of the Block Affine Cipher-Known Plaintext Attack
  • Padding Methods
  • Exercises 

Chapter 6: Systems of Linear Congruences-Single Modulus 

  • Modular Matrices
  • Modular Matrix Inverses
  • Exercises 

Chapter 7: Matrix Ciphers 

  • Weaknesses of Matrix Cryptosystems
  • Transposition Ciphers
  • Combination Substitution/Transposition Ciphers
  • Exercises 

Chapter 8: Systems of Linear Congruences-Multiple Moduli

  • The Chinese Remainder Theorem
  • Exercises 

Chapter 9: Quadratic Congruences 

  • Quadratic Congruences Modulo a Prime
  • Fermat’s Little Theorem
  • Quadratic Congruences Modulo a Composite
  • Exercises 

Chapter 10: Quadratic Ciphers 

  • The Rabin Cipher
  • Weaknesses of the Rabin Cipher
  • Strong Primes
  • Salt
  • Cipher Block Chaining-CBC
  • Blum-Goldwasser Probabilistic Cipher
  • Weaknesses of the Blum-Goldwasser Probabilistic Cipher
  • Exercises 

Chapter 11: Primality Testing

  • Miller’s Test The Rabin-Miller Test
  • Exercises 

Chapter 12: Factorization Techniques 

  • Fermat Factorization
  • Monte Carlo Factorization
  • The Pollard p-1 Method of Factorization
  • Exercises 

Chapter 13: Exponential Congruences

  • Order of an Integer
  • Generators
  • Generator Selection
  • Calculating Discrete Logarithms
  • Exercises 

Chapter 14: Exponential Ciphers 

  • Diffie-Hellman Key Exchange
  • Weaknesses of Diffie-Hellman
  • The Pohlig-Hellman Exponentiation Cipher
  • Weaknesses of the Pohlig-Hellman Cipher
  • Cipher Feedback Mode-CFB
  • The ElGamal Cipher Weaknesses of ElGamal
  • The RSA Cipher
  • Weaknesses of RSA
  • Exercises 

Chapter 15: Establishing Keys and Message Exchange

  • Establishing Keys
  • Diffie-Hellman Key Exchange Application
  • Message Exchange
  • Cipher Chat Application
  • Exercises 

Chapter 16: Cryptographic Applications 

  • Shadows
  • Database Encryption
  • Large Integer Arithmetic
  • Random Number Generation
  • Signing Messages
  • Message Digests
  • Signing with ElGamal
  • Attacks on Digest Functions
  • Zero Knowledge Identification
  • Exercises 

Appendix: List of Propositions

Appendix II:   Information Theory 

  • Entropy of a Message
  • Rate of a Language
  • Cryptographic Techniques
  • Confusion
  • Diffusion
  • Compression 

Recommended Reading
Index


Back to top

ShowAbout the Author(s)

David Bishop-Grinnell College

David Bishop is a computer science professor at Grinnell College, a highly respected liberal arts college in Grinnell, Iowa. Professor Bishop has been teaching computer science and mathematics classes since 1992, when he obtained my MS in mathematics from Kansas State University. Furthermore, he received his PhD in computer science in 1997 while teaching full time. Professor Bishop's area of interest is cryptology, which he has been teaching for many years.

Additional Titles by this Author

Back to top

ShowReviews

  • "Dr. Bishop chose an approach that would allow readers to cover the mathematical material in the book, to see the code which implemented those principles, then simply open their browser and click on an HTML file to view the concepts they had just learned...this is the first crypto book that offers this kind of interactivity."

                                                                      - Cryptologia

    "The text is well written, easy to read.  Good examples and exercises follow each chapter.  The topics and examples covered serve well for juniors/seniors and first-year grad students."

    -   K.T. Arasu
    Wright State University

     

    "At many universities this book would find a natural home after a first programming and first discrete math class, and many students will be intrigued to find that cryptography is to be done and not just studied."

    -  Charlie Colbourn
    Arizona State University

    "I'd be happy to have this book on my shelf, and when I teach cryptography, I would be happy to use it in my classroom and recommend it to my students... given the importance of the topic, the current choice of implementation platform, and the accuracy of the treatment, I think this is well done."

    - Jones and Bartlett Editorial Review

Back to top

ShowAppropriate Courses

This book is intended for undergraduate students taking a first course in cryptography.  The text was designed with both the mathematical theory and the practice of writing cryptographic algorithms in mind.  The chapters present the number theory required, and, in most cases, cryptosystems are presented as soon as the material required to understand them has been completed.  No prior knowledge of number theory is necessary, though you should know how to use matrices and should be familiar with the concept of mathematical induction and other methods of proof.  There are many math exercises for you because it is necessary to deepen one's understanding of cryptography.  A working knowledge of Java is assumed. You should have little trouble programming cryptographic algorithms in Java once the mathematics is understood.  We begin the cryptographic programming "from the ground up."  

  • Introduction to Cyrptography 
  • Java Cryptography 
  • Cryptography using Java
Back to top

ShowSamples & Additional Resources

ShowResources

Back to top