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
Screen Shots: Images open in a new window.
Course Materials to Accompany the Program
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
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.