2012 Software Artifact Term Project Implementation if a file encryption/hashing application using .Net Framework platform containing Triple DES, MD5, RSA, and HMASHA1 algorithms. Thomas Brookshire, Evan Washington, Drew White CS 570 Advanced Computer Security 4/12/2012 Thomas Brookshire Evan Washington Drew White Table of Contents Background...................................................................................................................................... 3 User Interface Design .................................................................................................................. 6 Application Operation ................................................................................................................. 7 Data Flow Diagram ....................................................................................................................... 8 Thomas Brookshire Evan Washington Drew White Background Our program is an implementation of a file encryption/hashing application using the .Net Framework platform using C# .Net. The program will implement the following cryptographic algorithms: Triple DES: (Triple Data Encryption Algorithm) block cipher which applies data encryption standard DES cipher three times to each data block. DES: (Data Encryption Standard) archetypal block cipher. An Algorithm that takes a fixedlength string of plaintext bits and transforms it through a series f complicated operations into another ciphertext bitstring of the same length. Thomas Brookshire Evan Washington Drew White MD5: (Message Digest Hash Algorithm) cryptographic hash function that produces a 128-bit has value. MD5 is commonly used to check data integrity Thomas Brookshire Evan Washington Drew White RSA: (Rivest Shamir, Adelman Algorithm) an algorithm for public-key cryptography that is based on the presumed difficulty of factoring large integers. HMACSHA1: (Hash Message Authentication Code SHA1 Algorithm) a specific construction for calculating a message authentication code (MAC) involving a cryptographic has function in combination with a secret key. Thomas Brookshire Evan Washington Drew White User Interface Design The user interface consists of the following components: Menu bar Label indicating the chosen file to be hashed or encrypted Button to clear current data Text area to display output File menu Open – Opens file directory to select a file on which to implement hash/encryption functions. If no file is opened before selecting initially, the user will be required to select a file once the desired operation is chosen. Save As – Opens file directory to allow the user to save current data to the desired location. Reset – Clears all current data, including input file selection. Generate Keys – Allows user to select either Public Key Only or Public & Private key to create a key for the RSA encryption on the input file. Hash File – Creates MD5 or HMASHA1 hash of the input file, depending on user selection. Encrypt File Contents – Encrypts the input file using TripleDES or RSA encryption, depending on user selection Help menu About – Shows an about page displaying information regarding the application and its development Thomas Brookshire Evan Washington Drew White Application Operation If the user chooses to generate RSA keys, they will be prompted to select a location in which to save the keys. Once the user selects a hash/encryption operation on a selected input file, a dialogue box will appear asking if the user would like to save the file. ◦ If 'Yes' is selected then the user selects the name of the output file and the location in which to save the file. ◦ If 'No' is selected, the hash/encrypted data is displayed to the text box. ◦ If 'Cancel' is selected, the data is cleared, but the input file is still active in the application. At any point in the application, the user may save the current data through the 'Save As' option in the file menu. All data, including the selected input file can be cleared from the application using either the 'Clear Data' button or the 'Reset' option in the file menu. Thomas Brookshire Data Flow Diagram Data flow diagram Evan Washington Drew White