Assignment title: Information
1 Assignment Description For this assignment you are going to use the openssl crypto library to encrypt/decrypt text les. The openssl crypto library implements a wide range of cryptographic algorithms used in various Internet standards. The services provided by this library are used by the OpenSSL implementations of SSL, TLS and S/MIME, and they have also been used to implement SSH, OpenPGP, and other cryptographic standards. Versions are available for most Unix-like operating systems (including Solaris, Linux, Mac OS X and the various open source BSD operating systems), OpenVMS and Microsoft Windows. 1.1 Task 1 The rst thing that needs to be done is to set up the environment for this lab. As a matter of fact, you will set up two libraries that will also be used in subsequent labs. 1. Install openssl (www.openssl.org) on your machine, if not already in-stalled as part of the operating system. 2. Install openssh (www.openssh.com) on your machine. Do NOT install the server component of openssh! 1.2 Task 2 The purpose of this task is to familiarize yourselves with the openssl com-mand line tool. Create a user manual illustrating the functionality of basic commands, focusing on the secret key encryption algorithms. You may as-sume that the reader of the manual is someone who is familiar with secret key cryptography but not with the speci c tool. 1.3 Task 3 You will now use openssl built-in functions to implement a program mydes that performs encryption/decryption using DES in mode CBC (Cipher Block Chaining). Your executable program takes the following parameters: ./mydes iv key inputfile outputfile iv: the actual iv to use and this must be represented as a string com-prised only of hexadecimal digits. key: the actual key to use: this must be represented as a string com-prised only of hexadecimal digits. input le: input le name output le: output le name For example: Demonstrate your program functionality by testing it with a couple of input test les. 1.4 Task 4 The nal part of this lab consists on measuring the time DES takes to process les of di erent sizes. Generate text les with the following sizes (in bytes): 8, 64, 512, 4096, 32768, 262144, 2047152 Encrypt and decrypt all these les using the DES program that you wrote in Task 3. Measure the time it takes to encrypt and decrypt each of the les. To do this, you might want to use the C function gettimeofday. Add these timing functions to your implementation of Task 3. Prepare a graph showing the DES encryption/decryption times. Note that in the next lab, you will implement the RSA and compare the two encryption ciphers! 2 Deliverables The deliverables for this assignment are the following: 1. The openssl command line tool user manual. 2. The source le(s) for Tasks 3 and 4. 3. A report (pdf) with all required output from Tasks 3 and 4. Submission will be done via Moodle.