Download presentation
Presentation is loading. Please wait.
Published byPaula O’Neal’ Modified over 9 years ago
1
Frank Rowe John Gaetano Chuck Figiel
2
CryptoViz implements and visualizes the Data Encryption Standard (DES) algorithm. DES was used by the government and industry from 1976-1999, but is now considered insecure. Client: Dr. Don Spickler from the Math & Computer Science Department at Salisbury University.
3
Fully implements the DES algorithm in Java. User interface for quickly encrypting and decrypting data. Visualizes the DES key generation algorithm using Java Swing and 2DGraphics. Detailed interactive diagram of the DES encryption algorithm. Built-in help system
4
Subversion, a version control system. Allows developers to maintain current and past versions of code across multiple environments. No need to email files or swap around USB sticks. All code changes (diffs) along with comments are saved. Server: Google Code Free repository for open source applications No need to setup and configure a svn server manually Includes a wiki, additional file hosting, and project management tools. http://code.google.com/p/cryptoviz/ http://code.google.com/p/cryptoviz/ Source code: http://code.google.com/p/cryptoviz/source/browse/#svn/trunkhttp://code.google.com/p/cryptoviz/source/browse/#svn/trunk Program download: http://code.google.com/p/cryptoviz/downloads/listhttp://code.google.com/p/cryptoviz/downloads/list Changelog: http://code.google.com/p/cryptoviz/source/listhttp://code.google.com/p/cryptoviz/source/list Clients: Many available ( http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients )http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients For Microsoft Windows we used TortoiseSVN (gui) Under linux we used the command line client “svn”
5
We primarily used simple text editors in Linux and Windows environments (gedit, notepad++). Began to use Netbeans IDE about halfway through the project. GUI creation is much easier/better. Speeds up development through code completion and automation of other repetitive tasks.
6
Block cipher; uses a 64-bit block size. Base key is 56 bits Used to generate 16 subkeys, each of 48 bits Done with a series of shifts and permutations Initial permutation 16 rounds of processing This is the core of the algorithm, called the “Feistel Structure” Each round uses one of the subkeys and the previous round’s output. Each round consists of a left-right swap, an expansion function, an XOR, de-expansion function (the “S-boxes”), a permutation, and another XOR. Final permutation
7
BitList Essentially a fancy array of booleans Extends built-in BitSet class Bit Set sometimes creates more bits than requested, doesn’t report size “properly”, and doesn’t have useful constructors. BitList fixes those issues. BitList also attaches a “color” to each bit that sticks to it with it when the BitList is permuted or copied. DES.permute() Copies bits of an input BitList to an output BitList Uses the mapping provided by an input array of integers Bit-shifts, left-right swaps, expansion function are all implemented as permutations.
8
S-Boxes Reduces 6 bits down to 4 bits. This is not a permutation. There are 8 S-boxes, all similar. We implemented them as a lookup table. Input is an integer (1-8) and a 6-bit BitList; output is a 4-bit Bitlist. DES.generateKeys() 64 bit-input, but 8 bits are unused Returns an array of 16 BitLists, each of length 48. DES.round() DES.encrypt() DES.decrypt()
9
Java Graphics2D Animates a binary string based off permutation map. Individual bits are created as Node objects Animation is contained within separate thread. Overrides paintComponent method for JPanel. Update position of nodes, repaint.
10
AboutFrame.javaHelp About BitList.javaCore data type, extends BitSet ConvertString.javaAdditional functions for manipulating BitLists CryptMain.javaMain class DES.javaDES implementation EncryptPanel.javaFiestel Structure, encryption and decryption KeyFrame.javaKey Generation MyHelpSystem.javaDisplays help file (credit: Dr.Spickler) Node.javaFor visualization QuickDES.javaEncryption & decryption of text files RoundPanel.javaVisualize an individual round VisualizationPanel.javaCore visualization code
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.