Cryptography Explorer (Version 2.12.1)

The Cryptography Explorer program was developed for the investigation of cryptography and cryptanalysis. It was developed as a teaching tool to try to remove the tedious calculations but still require the user to make the decisions for the processes and analysis. This is a Java application, so if the Java JRE is not installed on your computer download and install the current version of the Java JRE (Version 8 or later). You can get the most current version at the Java Web Site.

Downloads
Windows Install Program

Instructions: Download and run the CryptographyExplorer_Setup.exe program and follow the instructions on the screen. This will place links to the Cryptography Explorer program in your Start menu.

Windows Portable Version (No Install)

Instructions: The Cryptography Explorer program is a single executable file (CryptographyExplorer.exe) that can be run on any machine that has version 1.7.0 (or higher) of Java installed.


Linux & Mac

Instructions: Download and unzip the CryptographyExplorer_Jar.zip file. This will extract CryptographyExplorer.jar and several image files that can be used as program icons. You can run the application using the following command, or create a shortcut/menu-item using the same command in the launcher.

java -jar CryptographyExplorer.jar

Java Archive

Instructions: The Java Archive (Executable JAR file) can be downloaded using the Linux & Mac download link above.

Screen Shots: Images open in a new window.
Course Materials to Accompany the Program
  • Cryptography Notes: Technology Guide on Using Mathematica, Maxima, and Cryptography Explorer
  • Technology Guides for Mathematica, Maxima, and Cryptography Explorer: With an Emphasis on Cryptographic Applications
  • Maxima Support Functions - Support Function Documentation
  • Mathematica Support Functions
Program Features
  • Supported Ciphers
    • Mono-Alphabetic Substitution
    • Vigenere
    • Scytale
    • Rail Fence
    • Columnar
    • Two Square
    • Four Square
    • Playfair
    • ADFGX
    • ADFGVX
    • Linear Feedback Shift Register (LFSR)
    • Hill
    • Enigma
    • RSA
    • ElGamal
  • Cipher Tools
    • Text and Stream Analysis
      • Frequency Analysis
      • Hill Climb Analysis
      • Kasiski's Method
      • Coincidence Analysis
      • Dot Product Analysis
      • Substring Compare
      • LFSR Cipher Analysis
    • Text Tools
      • Text Extractor
      • Text Combiner
      • Text Converter
      • User Defined Language Creator
    • Calculators
      • Integer Calculator
      • Modular Matrix Calculator
      • Elliptic Curve Calculator
      • Random Number Generator
    • Factoring Tools
      • Brute Force Factoring
      • Fermat Factoring
      • Pollard P - 1 Factoring
      • Williams P + 1 Factoring
      • Pollard Rho Factoring
      • Brent's Method Factoring
      • Quadratic Sieve Factoring
      • Multiple Polynomial Quadratic Sieve Factoring
      • Lenstra's Elliptic Curve Factoring
      • Multiple Factoring Methods
      • B-Smooth Number Finder
    • Discrete Logarithm Tools
      • Brute Force Discrete Logarithm
      • Pohlig-Hellman Discrete Logarithm
      • Pollard Rho Discrete Logarithm
      • Pohlig-Hellman with Pollard Rho Discrete Logarithm
      • Index Calculus Discrete Logarithm
      • Variant of the Index Calculus Discrete Logarithm
      • Index Calculus B-Smooth Number Finder
    • Notepad
    • Gridpad
License

This software is distributed under the GNU General Public License version 3

Copyright (C) 2019 Don Spickler

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details http://www.gnu.org/licenses/.

Update History
10/25/19: Version 2.12.1
  • Added a B-Smooth Number Finder for the Index Calculus discrete logarithm algorithm.
10/16/19: Version 2.11.1
  • Updated the B-Smooth numbers finder grid to be multi-selectable. This allows highlighting and copy of multiple rows which makes it easier to view the desired small prime factorizations.
7/16/19: Version 2.10.1
  • Added an Elliptic Curve Calculator
11/10/15: Version 2.9.1
  • Added a B-Smooth Number Finder for the investigation of the Quadratic Sieve factoring algorithm.
8/6/15: Version 2.8.2
  • Bug Fix: Fixed a bug in the input boxes that take multiple numbers as input, such as the RSA algorithm. Bug found during testing.
8/3/15: Version 2.8.1
  • Added editing pop-up menus to all input and output editing boxes.
7/24/15: Version 2.7.1
  • Added facilities to the Modular Matrix Calculator tool for copying the matrices to Mathematca matrix format and to Maxima matrix format.
7/13/15: Version 2.6.1
  • Added facilities to the Gridpad tool for copying the grid contents to Mathematca matrix format and to Maxima matrix format.
7/6/15: Version 2.5.1
  • Added a Mode selection to the Hill Cipher tool.
6/5/15: Version 2.4.1
  • Added a hill climb analysis tool for substitution ciphers.
  • Added a Gridpad tool for manipulating grid type data.
5/11/15: Version 2.3.1
  • Added trigram and n-gram options to the frequency analysis tool.
  • Added double factorial and quick semiprime calculation to the integer calculator.
4/17/15: Version 2.2.1
  • Changed the name to Cryptography Explorer. Since the purpose of the program is educational, it seemed to be a more appropriate name.
  • Incorporated worker threads for lengthy processes.
  • Added Ciphers
    • Mono-Alphabetic Substitution - Random Kama-Sutra Key Generator
    • Vigenere - Plaintext and Ciphertext Autokey options.
    • Scytale
    • Rail Fence
    • Columnar
    • Two Square
    • Four Square
    • ElGamal
  • Added Tools
    • Kasiski's Method
    • Text Converter - Several new conversion options added.
    • Integer Calculator
      • GCD on lists.
      • Decimal and Integer Square Roots
      • Chinese Remainder Theorem on arbitrary length lists of congruences.
      • Jacobi Symbol
      • Previous primes.
      • Nth prime
      • Number of primes less than N
      • Euler Totient function
      • Primitive root calculations
      • Primitive root verification
      • Integer Factoring
      • Discrete Logarithm calculations
      • Expression Evaluator
    • Factoring Tools
      • Brute Force Factoring
      • Fermat Factoring
      • Pollard P - 1 Factoring
      • Williams P + 1 Factoring
      • Pollard Rho Factoring
      • Brent's Method Factoring
      • Quadratic Sieve Factoring
      • Multiple Polynomial Quadratic Sieve Factoring
      • Lenstra's Elliptic Curve Factoring
      • Multiple Factoring Methods
    • Discrete Logarithm Tools
      • Brute Force Discrete Logarithm
      • Pohlig-Hellman Discrete Logarithm
      • Pollard Rho Discrete Logarithm
      • Pohlig-Hellman with Pollard Rho Discrete Logarithm
      • Index Calculus Discrete Logarithm
      • Variant of the Index Calculus Discrete Logarithm
2/3/15: Version 2.1.2
  • Recompiled with new grid tool for faster spreadsheet operation.
  • Extended the Hill cipher matrices to a maximum size of 20 X 20.
  • Changed the algorithm for Hill matrix inverse checking.
  • Extended the matrix calculator matrices to a maximum size of 100 X 100.
  • Bug Fix: Fixed a bug in the input checking of the Hill cipher matrix. Bug found during testing.
2/2/15: Version 2.1.1
  • Added a modular matrix calculator, a simple matrix manipulator and arithmetic tool. Each matrix has an associated modulus for all calculations. Reduction, inverses and matrix arithmetic is done over the associated modulus.
1/26/15: Version 2.0.1
  • Revised the user interface on all input and output boxes, and on all tables.
  • Added Undo and Redo capabilities to all input boxes.
  • Added the ability to do all text conversions in the input boxes.
  • Revised the printing facilities on all program input, output, and reporting features.
  • Added print preview facilities on all program input, output, and reporting features.
  • Added word and character count statistics to input and output boxes.
  • Added the ability to create user-defined languages with relative frequencies for each character.
  • Added several new text converters.
  • Added LaTeX table and array formatting copy options to many of the tables and matrices.
  • Added Mathematica and Maxima syntax copy options to the Hill cipher matrices.
  • Added open child window tracking in the Window sub menu.
  • Revised all bar charts to produce better images, as well as print and print preview options.
  • Combined the prime number facilities into the Integer Calculator and added some integer calculation facilities.
  • Added a collapsible Quick Help system that is linked to the currently selected child window.
  • Revised and updated the help system.
9/24/09: Version 1.2.1
  • Added an LFSR Cipher Analysis window for determining the key recurrence relation given a portion of the key.
  • Fixed some minor user interface problems.
9/22/09: Version 1.1.1
  • Added a random number generator that uses either the linear congruential algorithm, Java's built-in Random cLass or the Blum-Blum-Shub algorithm.
8/25/09: Version 1.0.1
  • First public release.
Third Party Software Used
  • JLaTeXMath: (by Calixte Denizet and Sylvestre Ledru): One component in the matrix workspace display framework of the modular matrix calculator.
  • Oracle Help for Java: (Oracle): The help system.
  • JFreeChart: (by David Gilbert): Renders all of the bar charts in the program.