online essay editor on cryptography

Project

Background:

Symmetric or shared-key cryptography is a message confidentiality preserving mechanism that
involves a series of message transformations using some secret key known only to the sender
and the receiver. The original message can be viewed by a reverse transformation process using
the same pre-shared secret. The process of transforming information into an unintelligible form
is called Encryption, while the reverse process is called Decryption. We have discussed
numerous symmetric block ciphers in the class that are used to encrypt fixed blocks of data.
DES was one of the most widely used symmetric block ciphers which is based on the Fiestel
Cipher Structure (Details about DES can be found in the text book). Another encryption scheme
based on the Fiestel cipher structure is the Tiny Encryption Algorithm (TEA). Details of the TEA
can be found at the following link (http://143.53.36.235:8080/tea.htm).

Project Tasks (all the tasks are required):

1. Task 1: In this task, you will be required to investigate TEA in further detail and write a brief
(one-page) write-up on the specific properties of TEA, for example, the maximum size of the
key, maximum number of rounds, and the round function. Also list some of the major
similarities and differences between DES and TEA in this write-up.

2. Task 2: In the class, we studied various additional block cipher modes, such as Cipher Block
Chaining (CBC), Counter Mode (CTR) and Output Feedback (OFB), which could be used to
extend the standard (Electronic Code Book mode) block cipher operation. In this task of the
project, you will be required to implement any TWO of the modes of operation of your
choice from the following – Cipher Block Chaining (CBC), Counter Mode (CTR) and Output
Feedback (OFB) for the Tiny Encryption Algorithm (TEA). The implementation must be done
using the C programming language. The C source code and details about the Tiny
Encryption Algorithm can be found by following the links
http://143.53.36.235:8080/source.htm#ansi and http://143.53.36.235:8080/tea.htm
respectively. The TEA source code contains two functions, one for encrypt and one for
decrypt operation. Your task is to code two additional functions for each block cipher mode

you are implementing, i.e., cbc_encrypt and cbc_decrypt if you are implementing the CBC
mode. Each of these new functions should make use of (or call) the original encrypt and
decrypt functions of the TEA cipher.

Next, you are required to write C code for encryption and decryption using the
corresponding block cipher modes in the standard Data Encryption Standard (DES)
implementation (using the openssl or crypto libraries). Note that you do NOT have to
implement these block cipher modes in DES from the ground-up. Rather, you can use the
appropriate openssl library functions already available for DES. You can find information
and details about the openssl library by going to
http://www.openssl.org/docs/crypto/crypto.html and the libcrypto library at
http://www.gnu.org/software/libgcrypt/. Some of the openssl library functions you can use
in your code:

void DES_ofb_encrypt((const unsigned char *in, unsigned char
*out, int numbits, long length, DES_key_schedule *schedule,
DES_cblock *ivec);

void DES_ncbc_encrypt(const unsigned char *input, unsigned
char *output, long length, DES_key_schedule *schedule,
DES_cblock *ivec, int enc);

Where: input–plaintext, output-ciphertext, ivec-initialization
vector, enc-encrypt or decrypt, schedule-to check for strength
of key, length-output length. You will need to include more
functions in your code that can be found on the links below.
If you used the openssl library, you can compile your code on
the CS servers as follows: gcc program.c –o program –lcrypto
and then execute

Detailed information about the functions is available at
http://www.openssl.org/docs/crypto/des.html# and information about the details of DES cipher
modes can be found at http://www.openssl.org/docs/crypto/des_modes.html#

3. Task 3: In this last task of the project, you are required to do performance measurements
for both TEA and DES in the two block cipher modes of operation that you implemented
earlier. What is needed is to record the time it takes for encryption and decryption for
various message sizes. Your C program should be able to read the data to be encrypted
from a file and write the output to a file. You should create text files of sizes 64, 512, 4096
and 32768 ASCII characters as input files from which data will be read as input to your
program.

Your code should be able to encrypt and decrypt the information as well as measure the
time it takes to perform both operations in both modes of operations you have
implemented. The “gettimeofday” function in C will be useful for measuring time, by
appropriately placing it before and after the encryption (and decryption) function, in order
accurately measure the difference in time.

Is this the question you were looking for? If so, place your order here to get started!