Presentation is loading. Please wait.

Presentation is loading. Please wait.

Frank Rowe John Gaetano Chuck Figiel.  CryptoViz implements and visualizes the Data Encryption Standard (DES) algorithm.  DES was used by the government.

Similar presentations


Presentation on theme: "Frank Rowe John Gaetano Chuck Figiel.  CryptoViz implements and visualizes the Data Encryption Standard (DES) algorithm.  DES was used by the government."— Presentation transcript:

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


Download ppt "Frank Rowe John Gaetano Chuck Figiel.  CryptoViz implements and visualizes the Data Encryption Standard (DES) algorithm.  DES was used by the government."

Similar presentations


Ads by Google