DOC PREVIEW
MASON ECE 646 - Educational Software For A Cryptographic Laboratory

This preview shows page 1-2-3 out of 8 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Luu Pham – [email protected] – Nov. 2003Table of ContentsThe purpose of this project is to develop an educational proWeek beginningEEdduuccaattiioonnaall SSooffttwwaarree FFoorr AA CCrryyppttooggrraapphhiicc LLaabboorraattoorryy (Specification – Version 1) Luu Pham – [email protected] GMU – Nov. 2003ECE 646 – Cryptography and Computer Network Security Luu Pham Table of Contents 1. ABSTRACT 2. INTRODUCTION 3. DESIGN SPECIFICATIONS i. Languages, compiler, and platform to the run application ii. Range of variables for arithmetic operations iii. Main functions iv. Inputs/Outputs 4. TESTING AND SIMULATION PLAN 5. LITERATURE 6. PROJECT SCHEDULE 11/30/2003 Page 2 of 8ECE 646 – Cryptography and Computer Network Security Luu Pham 1. ABSTRACT The purpose of this project is to develop an educational program to demonstrate RSA public key encryption/decryption and RSA signature with small key lengths for a Cryptographic laboratory. The application is designed and implemented in such a way so that it is a user friendly interface; it offers the user flexibilities in data input/output and capabilities to visualize main calculations in the crypto-algorithm. In addition, main calculations needed for the RSA algorithm are also implemented; this allows user to compute calculations when performing public key encryption/decryption or RSA signature. 2. INTRODUCTION Public key cryptography, especially RSA algorithm, has been widely used in industry since 90s. In last fifteen years, many studies and researches have been performed and published on RSA algorithm; however, there is very few software that efficiently shows the main calculation process of the algorithm. When studying public key cryptography, students have very few chances to fully explore and verify intermediate values a long with its calculations. In real life, most of RSA cryptographic products are tightly integrated with other applications, and users are unable to see any cryptographic transformations. In attempt to bridge this gap, this application is designed to be implemented to offer students a user friendly interface software, which allows users to manipulate input values to visualize all process of cryptography and trace through intermediate values a long with its calculations. In addition, main calculation utilities needed for RSA encryption/decryption and RSA signature are also implemented to offer the user useful tools to compute necessary values when performing public key encrypting or decrypting. 11/30/2003 Page 3 of 8ECE 646 – Cryptography and Computer Network Security Luu Pham 3. DESIGN SPECIFICATIONS i. Languages, compiler, and flat form to run the application a. Languages: Delphi 6 and Assembly are used to implement the application. b. Compiler: Delphi 6 - Borland. c. Platform: Since our purpose is to design an application with good performance, reliability, and user friendly user interface; therefore, Windows is the main platform for our application. ii. Range of variables for arithmetic operations The range of variables for arithmetic operations in the program is 64-bit integer, whose range is -2^63 and 2^63. 16-bit key length is initially selected to implement the RSA algorithm. iii. Main functions a. Main functions needed for Database management: + Add: Add new user to the database + Delete: Delete a user currently in the database + Edit: Edit to revise user information in database + Change key: Change key values for a user in the database + Search: Search to display all user information currently in the database. b. Main functions for calculation utilities + Check prime number: Input: An integer number. Output: Confirmation whether input number is an prime number or not. + Multi-Inverse: Find x so that a.x=1 mod N Input: a, N: integer. Output: x so that a.x=1 mod N. 11/30/2003 Page 4 of 8ECE 646 – Cryptography and Computer Network Security Luu Pham + GCD: Find GCD(a,b) Input: a, b: integer. Output: GCD(a,b) + Congruence: Find x so that a.x=b mod N Input: a, b, N: integer. Output: x so that a.x=b mod N. + Left-To-Right Binary Exponential: Find Y=M^E mod N Input: M, E, N: integer. Output: Compute Y=(M^E mod N) by using Left-To-Right Binary Exponential + Right-To-Left Binary Exponential: Find Y=M^E mod N Input: M, E, N: integer. Output: Compute Y=(M^E mod N) by using Right-To-Left Binary Exponential c. GetPublicKey: [e,n]=GetpublicKey(IP, PKIDirectoryFile); Input: Either IP Address or Email Address and PKI Directory file. Output: Public key e and n for the desired IP/ email address. d. RSA_Key_Generator: [e,n,d]=fk(p,q) Input: p, q: large prime numbers. Output: Public key [e,n]=fpub(p,q) Private key [d,n]=fprv(p,q) e. MD5 Hash function: h=H(m) Input: Message m: arbitrary length Output: h: 128-bit fixed length h=H(m) f. Encryption: C=fe(M,n,e) Input: Message arbitrary length, public key (e,n) Output: Cipher text C=fe(M,n,e) g. Decryption: M=fd(C,n,d) Input: Cipher text arbitrary length, private key (d,n) Output: Message M=fd(C,n,d) h. Verify Digital Signature: Boolean function b=fv(e,n,Ds) Input: Public key (e,n) Message Digital Signature Ds 11/30/2003 Page 5 of 8ECE 646 – Cryptography and Computer Network Security Luu Pham Output: True or False; iv. Inputs/Outputs a. Inputs: There are two input options that user can select when running the program; input by typing directly from the key board or reading entire messages from a text file. b. Outputs: All information during the process of encryption and decryption will not only be logged into a log file, but also can be seen on the screen if users would like to do so. 4. TESTING AND SIMULATION PLAN Functional test for each function will be carried out during the implementation process. Available test vectors, sample input/output from reference sources will be utilized to test main functions to verify the accuracy of the application. The system clock will be used to measure the timing for each part of the encryption and decryption process. That will help the user easily evaluate the performance of each function in the program, and also for the entire


View Full Document

MASON ECE 646 - Educational Software For A Cryptographic Laboratory

Documents in this Course
Load more
Download Educational Software For A Cryptographic Laboratory
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Educational Software For A Cryptographic Laboratory and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Educational Software For A Cryptographic Laboratory 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?