Computer security project

0 comments

For this project you are going to look at the key operations used in encryption and decryption algorithms and study their time cost. The language is up to you but does need to support the following:

  1. Ability to do an XOR operation – Most languages, like python, have this operator.
  2. Binary Shift operator
  3. Ability to manage large numbers – For example a number that is 2128 in size. Python apparently has this already built in, other languages like Java have specialize classes or libraries to support this.
  4. Ability to move elements around in an array
  5. A way to time the operations – normally this may mean having to do an operation a large number of times to get a response that is other than 0. For example, add operations are very quick, so if I wanted to get a rough idea of how long one took, I might need to time 1 million of them, then divide.

You are going to look at the time cost for each operation based on the size of the values being worked with. So for each one you need to compute the average time it takes to do that operation with values that are around 232 in size (standard integer max size for most languages) and with values are on the scale of 2128 in size. In terms of base-10 numbers that are about 9 digits vs numbers that are about 38 digits in size.

For each of the 4 operations, choose 10 random number values close to 232 and 10 random number values close to 2128. Run timing operations and compute the average and standard deviation for each of the operations.

Output:

1. Copy of the code

2. A write-up that explains how you designed each operation and timed it as well as four tables of results. One table each for the raw results of the 232 and 2128 runs and one table each for the averages and standard deviations computed from those raw values. Lastly, a conclusion on the time cost for each of those operations.

About the Author

Follow me


{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}